Selenium xpath:元素在亚马逊网站上不可见
Selenium xpath: element not visible on Amazon site
我正在尝试针对亚马逊网站编写 Selenium 测试。我想要获取 "Sign in" 元素以便我可以点击它。
url: www.amazon.ca
这是我的 Selenium 代码:
driver.findElement(By.xpath("//a[@data-nav-role='signin']")).click();
但是我得到 Element not visible
异常。
我试过将 Thread.sleep(5000)
放在元素查找之前,但仍然是同样的问题。
我有其他方法来选择元素,但我想找出为什么这个 Xpath 在我的代码中不起作用。
注意:在 Chrome DevTool 控制台中尝试时,它在那里工作正常 $x("//a[@data-nav-role='signin']")
您选择的选择器 returns 多个元素,即 3。您可以使用 findElements
而不是 findElement
来验证。
您可以为要单击的特定元素提供精确的选择器,也可以使用 findElements
获取所有匹配的元素,遍历它们并单击具有匹配属性的元素,例如文字.
尝试:
driver.findElement(By.id("nav-link-yourAccount")).click();
我已经检查过该站点,我们需要先将鼠标悬停在菜单上,才能使登录按钮可见。下面的代码可能会给你一些想法。
//Mouse over to the menu
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//*[@id=\'nav-link-yourAccount\']/span[1]"));
action.moveToElement(we).build().perform();
//Now perform sign in button clicking action since its visible now
希望对您有所帮助。谢谢
尝试点击 xpath:
//a[@id='nav-link-yourAccount']/span
我正在尝试针对亚马逊网站编写 Selenium 测试。我想要获取 "Sign in" 元素以便我可以点击它。
url: www.amazon.ca
这是我的 Selenium 代码:
driver.findElement(By.xpath("//a[@data-nav-role='signin']")).click();
但是我得到 Element not visible
异常。
我试过将 Thread.sleep(5000)
放在元素查找之前,但仍然是同样的问题。
我有其他方法来选择元素,但我想找出为什么这个 Xpath 在我的代码中不起作用。
注意:在 Chrome DevTool 控制台中尝试时,它在那里工作正常 $x("//a[@data-nav-role='signin']")
您选择的选择器 returns 多个元素,即 3。您可以使用 findElements
而不是 findElement
来验证。
您可以为要单击的特定元素提供精确的选择器,也可以使用 findElements
获取所有匹配的元素,遍历它们并单击具有匹配属性的元素,例如文字.
尝试:
driver.findElement(By.id("nav-link-yourAccount")).click();
我已经检查过该站点,我们需要先将鼠标悬停在菜单上,才能使登录按钮可见。下面的代码可能会给你一些想法。
//Mouse over to the menu
Actions action = new Actions(webdriver);
WebElement we = webdriver.findElement(By.xpath("//*[@id=\'nav-link-yourAccount\']/span[1]"));
action.moveToElement(we).build().perform();
//Now perform sign in button clicking action since its visible now
希望对您有所帮助。谢谢
尝试点击 xpath:
//a[@id='nav-link-yourAccount']/span