Как найти элемент на новой странице с помощью xpath после перехода на новую страницу со старой в selenium?

#c# #selenium-webdriver

#c# #селен-веб-драйвер

Вопрос:

Я пытался автоматизировать вход в систему flipkart и добавление товара в корзину. всякий раз, когда я нажимал на продукт, он переходил на новую страницу и не мог найти указанный элемент(кнопка «Добавить в корзину») на новой странице. пожалуйста, помогите…Код, который я написал, выглядит следующим образом…

Веб-драйвер.findElement(По.XPath(«//img[содержит(@alt,’APPLE iPhone SE (черный, 64 ГБ)’)]»)).Нажмите();//нажал на веб-драйвер продукта.Найдите элемент(По.XPath(«//кнопка[@class=’_2KpZ6l _2U9uOA _3v1-ww’]»)).Нажмите();//переход на новую страницу

Ответ №1:

Когда открывается новая вкладка, вы должны переключить фокус драйвера Selenium на новую вкладку, чтобы получить доступ к элементам там.
Это можно сделать следующим образом:

 driver.SwitchTo().Window(driver.WindowHandles.Last());  

Когда вы закончите с этой вкладкой, вы захотите закрыть ее и переключиться обратно на первую вкладку.
Это можно сделать с помощью

 driver.SwitchTo().Window(driver.WindowHandlesLast()).Close(); // close the last tab driver.SwitchTo().Window(driver.WindowHandles[0]); // get back to the first tab