在使用Selenium自动化时,不能标记Div中弹出的元素

时间:2017-05-26 09:51:02

标签: java google-chrome selenium

automationpractice.com中自动化时, 脚步: 1.打开“automationpractice.com/index.php?id_product=5&controller=product#/size-s/color-orange” 2.单击“添加到购物车”按钮 3.下方添加到购物车成功弹出显示(参见下面的屏幕截图)

现在我无法在此弹出窗口中标记任何元素。我尝试使用Div标签在父窗口内的XPath,但错误是ElementNotVisible。我用driver.getWindowHandles()尝试了它,但它显示只存在1个窗口(父窗口)。还尝试使用alert,但它表示不存在警报。

此问题仅发生在Chrome浏览器中,对于firefox,使用带有Div标记的父窗口中的xpath可以正常工作。

下面是我试过的脚本,有人可以帮忙吗?提前谢谢!

此弹出窗口的xpath为"//*[@id="layer_cart"]/div[2]"

Set<String> windows = wd.getWindowHandles();
System.out.println("windows.size():"+ windows.size()); // the result is 1

enter image description here

1 个答案:

答案 0 :(得分:0)

此页面上没有新窗口或警报,只有问题是你的XPATH cotains "而不是',alo需要等待几秒才能看到该元素:

    WebDriver driver = new ChromeDriver();
    driver.get("http://automationpractice.com/index.php?id_product=2&controller=product");

    driver.findElement(By.xpath("//form[@id='buy_block']//p[@id='add_to_cart']")).click();

    WebDriverWait wait = new WebDriverWait(driver, 20);

    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='blockcart_caroucel']/li[1]")));
    driver.findElement(By.xpath("//*[@id='blockcart_caroucel']/li[1]")).click();