我正在尝试点击 Capyabara / Selenium 的链接。
它是Bing地图上的固定链接,example can be found here。
我可以使用all(…).each
:
within(".map") do
all("a.dealer-pin").each do |link|
click_link(link)
end
end
但是click_link(link)
会抛出错误:
Capybara::ElementNotFound:
Unable to find link
#<Capybara::Node::Element tag="a"
path="/html/body/form/article/div/div/section/div[2]/div/div[2]/div/div[2]/div[2]/div[3]/div/a[1]">
这些链接既没有唯一标识符,也没有唯一标识符或具有唯一标识符的内容(图片标记)。
答案 0 :(得分:0)
就像错误提示一样,每个DOM元素都可以通过其XPath引用,它与标准CSS选择器类似,但更具体。右键单击特定节点,即可在Chrome检查器中显示路径。
小心测试一些过于具体的东西。它可能会变得脆弱而且经常会进行难以维持的测试。
相关的水豚文档:http://www.rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders
答案 1 :(得分:0)
由于您已经拥有了link元素,因此只需要在其上调用click
- click_link
按照ID,标题或文本内容(也是嵌套img的alt属性)查找链接 - 但是你已经用普通的css查询找到了它们
within(".map") do
all("a.dealer-pin").each do |link|
link.click
end
end