Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用watir和children/xpath单击按钮?_Html_Ruby_Watir - Fatal编程技术网

Html 如何使用watir和children/xpath单击按钮?

Html 如何使用watir和children/xpath单击按钮?,html,ruby,watir,Html,Ruby,Watir,我想写一个通用代码来点击按钮 我从一个div中得到这个类,子元素是button。我使用xpath访问子元素: button = browser.div(class: /sp-m-cookies-container/).element(xpath: './*') puts button.innertext # OUTPUT: Submit button.click 即使输出是正确的(它是来自按钮的innerText,单击没有效果。但是,下面的代码可以工作(按钮不是通用的) 我做错了什么 在我

我想写一个通用代码来点击按钮

我从一个div中得到这个类,子元素是button。我使用xpath访问子元素:

button = browser.div(class: /sp-m-cookies-container/).element(xpath: './*')

puts button.innertext # OUTPUT: Submit

button.click
即使输出是正确的(它是来自按钮的innerText,单击没有效果。但是,下面的代码可以工作(按钮不是通用的)

我做错了什么

在我的例子中,名称不是“submit”。它通常是不同的。只有类总是相同的

铬:79.0.3945.130


Selenium:3.141.0

更改第一行,如下所示

button = browser.div(class: /sp-m-cookies-container/).button(xpath: './button').wait_until(timeout: 100, &:present?)
元素(xpath:'./*')
太泛型了,它将返回第一个元素,而不管它是否是按钮

如果您认为正常单击有效,那么可以使用fire\u event:onclick触发单击事件,如下所示

button.fire_event :onclick

您可以分享您正在使用的HTML吗?一个可能的原因是
元素(xpath:'./*')
实际上并没有返回按钮-例如,它可能返回一个包装按钮的元素。
button.fire_event :onclick