Наведите курсор на выпадающее меню в Amazon - PullRequest
0 голосов
/ 28 октября 2018

Я просто хочу навести курсор на раскрывающийся список «Отделы» на сайте Amazon.Код выглядит хорошо, но список не отображается.Это раскрывающийся список Департамента, который я пытаюсь показать

Вот мой код

    driver = new ChromeDriver();
    driver.get("https://www.amazon.com");
    Actions actions = new Actions(driver);
    WebElement ele = driver.findElement(By.xpath("//span[@class='nav-line-2']"));
    Thread.sleep(300);
    actions.moveToElement(ele);
    actions.perform();
    actions.perform();

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Кому Наведите указатель мыши на элемент с текстом Отделы , вам нужно вызвать WebDriverWait , чтобы нужный элемент был видимым ииспользуйте метод moveToElement() в сочетании с методом perform(), и вы можете использовать следующее решение:

  • Блок кода:

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class amazon_com_Departments {
    
        public static void main(String[] args) {
    
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("start-maximized");
            WebDriver driver =  new ChromeDriver(options);
            driver.get("https://www.amazon.com");
            WebElement department = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@id='nav-link-shopall' and normalize-space()='Departments']")));
            new Actions(driver).moveToElement(department).perform();
        }
    }
    
  • Снимок браузера:

amazon_hover_Department

0 голосов
/ 28 октября 2018

Похоже, xpath не является уникальным и с тем же локатором, определяющим местонахождение 6 элементов на странице.Когда у нас более одного элемента с одним и тем же локатором, селен идет на первый элемент.К сожалению, в вашем случае «Отделы» не первый элемент с этим локатором.

Измените свой xpath на следующий: [Проверено и работало]

//span[@class='nav-line-2' and contains(.,'Departments')]

PS: Изучите учебники xpath и css, прежде чем переходить к селену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...