我找不到合适的元素 - 单击 link Ruby
I can not locate proper element - click on link Ruby
我试图点击 link(见截图)
http://imgur.com/q66g7z6
http://imgur.com/KNF1y7z
我尝试使用几个例子
例如
@browser.button(:class=> '//*[@class="login"]//ul/li[0]/a').click
和
browser.button(:xpath=> "//a[@data-viewmodel='PagesAsync/RegisterPrivate/RegisterPrivateViewModel']").click
但不正确
我可以看到无法定位元素的消息
有人可以帮忙吗?
有两种选择。一种是让您的开发人员添加更好的 ID。
如果那不可能,试试这个:
how does ruby webdriver get element with hyphen in <name, value> pair
它在几个类似的情况下对我有用。
主要问题是您告诉 Watir 寻找 button
,而您实际上想要 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
我想知道如何使用指向 link 的 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 和 link 定位器找到的元素数量,以确保您得到正确的元素:
@browser.divs(:class => 'login').length
@browser.div(:class => 'login').links(:text => /For priva/).length
我试图点击 link(见截图) http://imgur.com/q66g7z6 http://imgur.com/KNF1y7z
我尝试使用几个例子 例如
@browser.button(:class=> '//*[@class="login"]//ul/li[0]/a').click
和
browser.button(:xpath=> "//a[@data-viewmodel='PagesAsync/RegisterPrivate/RegisterPrivateViewModel']").click
但不正确 我可以看到无法定位元素的消息 有人可以帮忙吗?
有两种选择。一种是让您的开发人员添加更好的 ID。 如果那不可能,试试这个: how does ruby webdriver get element with hyphen in <name, value> pair 它在几个类似的情况下对我有用。
主要问题是您告诉 Watir 寻找 button
,而您实际上想要 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
我想知道如何使用指向 link 的 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 和 link 定位器找到的元素数量,以确保您得到正确的元素:
@browser.divs(:class => 'login').length
@browser.div(:class => 'login').links(:text => /For priva/).length