我试图点击链接(见截图) http://imgur.com/q66g7z6 http://imgur.com/KNF1y7z
我尝试使用几个例子 e.g
@browser.button(:class=> '//*[@class="login"]//ul/li[0]/a').click
和
browser.button(:xpath=> "//a[@data-viewmodel='PagesAsync/RegisterPrivate/RegisterPrivateViewModel']").click
但不正确 我可以看到无法找到元素的消息 有人可以帮忙吗?
答案 0 :(得分:2)
主要问题是,当您确实需要button
时,您正在告诉Watir寻找link
。虽然可以将UI设置为看起来像按钮,但您会注意到HTML具有a
标记。
第一个也有错误定位器类型的例子应该是:
@browser.link(:xpath => '//*[@class="login"]//ul/li[0]/a').click
第二个例子应该是:
browser.link(:xpath => "//a[@data-viewmodel='PagesAsync/RegisterPrivate/RegisterPrivateViewModel']").click
请注意,如果使用普通属性定位器,第二个示例将更像Watir:
browser.link(data_viewmodel: 'PagesAsync/RegisterPrivate/RegisterPrivateViewModel').click
答案 1 :(得分:0)
有两种选择。一个是让您的开发人员添加更好的ID。 如果那是不可能的,试试这个: how does ruby webdriver get element with hyphen in <name, value> pair 它在几个类似的情况下对我有用。
答案 2 :(得分:0)
我想知道如何通过使用xpath链接找到一个按钮。您是否使用浏览器或@browser也不清楚。您需要了解如何定义浏览器实例,这可能是以下之一:
@browser = Watir::Browser.new :chrome
###or###
browser = Watir::Browser.start 'example.com', :firefox
如果您还没有创建浏览器实例,那么在使用Watir-Webdriver之前需要先执行此操作。 ;)
关于你的问题,你可以尝试使用文本进行搜索,如果它是这样的独特的,虽然它可能是一个脆弱的测试:
@browser.div(:class => 'login').link(:text => /For priva/).click
但我建议仔细检查使用div和链接定位器找到的元素数量,以确保您获得正确的元素:
@browser.divs(:class => 'login').length
@browser.div(:class => 'login').links(:text => /For priva/).length