Cucumber Capybara-根据属性查找元素';内容

Cucumber Capybara-根据属性查找元素';内容,cucumber,automated-tests,capybara,Cucumber,Automated Tests,Capybara,我的要求是检查页面上锚定标记的onclick属性中是否存在某些特定内容(即下面示例中的Id=4540484)。有人能帮我吗 <a title="Acrobat PDF File" href="#" onclick="openPop('/example/secure/Screen.aspx?Id=4540484&amp;certdocId=2513235)"><img src="New.gif" align="middle" border="0"></a>

我的要求是检查页面上锚定标记的onclick属性中是否存在某些特定内容(即下面示例中的Id=4540484)。有人能帮我吗

<a title="Acrobat PDF File" href="#" onclick="openPop('/example/secure/Screen.aspx?Id=4540484&amp;certdocId=2513235)"><img src="New.gif" align="middle" border="0"></a>

如果希望基于onclick属性查找元素,则需要使用css(或xpath)选择器

在您的情况下,您需要css选择器:

a[onclick*="Id=4540484"]
这表示查找一个链接元素,其中onlclick属性包含文本“Id=4540484”

然后可以使用has\u css?检查该链接是否在页面上的方法:

#Using an ID that exists will return true
page.has_css?('a[onclick*="Id=4540484"]')
#=> true

#Using an ID that does not exist will return false
page.has_css?('a[onclick*="Id=9999999"]')
#=> false

我们可以使用capybara设置属性
href=
的值吗?@Priti,capybara用于像用户一样驱动浏览器。由于用户无法更改href,因此Capybara没有直接的方法来执行此操作。但是,根据您使用的驱动程序,可能有一种方法可以在页面上注入javascript。例如,如果您使用的是SeleniumWebDriver,那么可以使用execute_script方法来注入更改html属性的javascript。