【发布时间】:2017-04-27 12:44:07
【问题描述】:
我正在使用 Selenium 和 Chrome 驱动程序运行我的 Cucumber 测试。我正在尝试使用 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 正在搜索该页面,问题出在:它正在查看当前页面而不是新标签。
所以也许我的问题:
如何搜索或移动我的驱动程序以在新打开的标签窗口中进行搜索?
【问题讨论】:
-
你试过没有点的xpath吗?
-
检查您的
div是否位于iframe内 -
@AnassAhmed 是的,我做到了,结果相同。
-
@Andersson 它在
table > tbody > tr > td > div的内部。我是在测试,而不是设计师。 -
表是否位于
iframe内? :) 检查是否有祖先<iframe>。使用浏览器的开发者控制台 (F12) 检查此信息
标签: selenium xpath cucumber automated-tests