Я пытаюсь нажать на подменю меню на сайте флипкарта. - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь щелкнуть меню «Мобильный телефон в категории электроники» на флипкарте , но получаю сообщение об ошибке:

"Ошибка JavaScript: невозможно прочитать свойство 'left' из неопределенного"

Может кто-нибудь помочь мне с этим.

Вот мой код:

WebElement menu = driver.findElement(By.xpath("//span[text()='Electronics' and @class='_1QZ6fC _3Lgyp8']"));
WebElement sub_menu =  driver.findElement(By.cssSelector("a[href='/mobile-phones-store?otracker=nmenu_sub_Electronics_0_Mobiles']"));
Actions action = new Actions(driver);
action.moveToElement(menu).moveToElement(sub_menu).click().build().perform();

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Похоже, вам сначала нужно закрыть всплывающее окно, затем вы можете получить меню Electronics, и вы ошибочно наберете значение Actions. Попробуйте следующий код:

driver.get("https://www.flipkart.com/");

//close popup
WebElement btnClose = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("._2AkmmA._29YdH8")));
btnClose.click();

WebElement menu = driver.findElement(By.xpath("//span[text()='Electronics' and @class='_1QZ6fC _3Lgyp8']"));
Actions action = new Actions(driver);
action.moveToElement(menu).click(menu).build().perform();

WebElement sub_menu =  driver.findElement(By.cssSelector("a[href='/mobile-phones-store?otracker=nmenu_sub_Electronics_0_Mobiles']"));
sub_menu.click();

После импорта:

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait
import org.openqa.selenium.By;
0 голосов
/ 11 октября 2019

Этот код работает. Вам нужно подождать, пока кнопка подменю не станет видимой или кликабельной.

WebElement menu = driver.findElement(By.xpath("//span[text()='Electronics' and @class='_1QZ6fC _3Lgyp8']"));
            WebElement sub_menu =  driver.findElement(By.cssSelector("a[href='/mobile-phones-store?otracker=nmenu_sub_Electronics_0_Mobiles']"));
            menu.click();
            wait.until(ExpectedConditions.elementToBeClickable(sub_menu));
            sub_menu.click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...