使用Selenium Chrome驱动程序通过xpath搜索elemets无法正常工作

时间:2016-12-12 15:43:49

标签: selenium xpath cucumber automated-tests

我正在使用Selenium和使用Chrome驱动程序运行我的黄瓜测试。我试图用xpath获取div元素,但它不起作用。

这是html元素:

<div class="row" id="headerspacing"></div>

这是我的测试代码:

WebElement div = agent.findElement(By.xpath(".//*[@id='headerspacing']"));
Assert.assertNotNull(div);

但是我收到一条带有元素的错误消息:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":".//*[@id='headerspacing']"}

更新:新标签窗口

在我的Cucumber测试中声明的前面步骤中,Selenium点击了一个链接(标记元素 a ),它的步骤是打开一个新的标签窗口。我认为Selenium正在搜索该页面,这就是问题:它正在查看当前页面而不是新标签。

所以也许我的问题是:

如何搜索或移动我的驱动程序以搜索新的打开标签窗口?

1 个答案:

答案 0 :(得分:0)

如果div位于新窗口(选项卡)中,则必须先切换到该窗口,然后才能找到其中的任何元素。因此,在尝试查找元素之前,您需要执行以下操作:

switchTo().window("windowName");