我正在使用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正在搜索该页面,这就是问题:它正在查看当前页面而不是新标签。
所以也许我的问题是:
如何搜索或移动我的驱动程序以搜索新的打开标签窗口?
答案 0 :(得分:0)
如果div
位于新窗口(选项卡)中,则必须先切换到该窗口,然后才能找到其中的任何元素。因此,在尝试查找元素之前,您需要执行以下操作:
switchTo().window("windowName");