我有一个没有课程的按钮,id只是一个文本
<button> Click me </button>
我尝试了以下内容:
driver.find_element(:xpath, "//button[contains(text(), 'Click me'")]
driver.find_element(:xpath, "//button(text() = 'Clck me'")
这些都不起作用。有人能让我走上正确的道路吗?
答案 0 :(得分:0)
您的xpath中有错误。正确的是:
# use button[] instead of button()
# you have weird order of ", ' and )
# space in the text 'Click me' also be considered ' Click me '
driver.find_element(:xpath, "//button[text() = ' Click me ']")
答案 1 :(得分:0)
如果不是您的拼写错误,请在更改后尝试:
driver.find_element(:xpath, "//button[contains(text(), 'Click me'")]
到
driver.find_element(:xpath, "//button[contains(text(), 'Click me')]")
否则,找到标签名称为“button”的页面上的所有元素,然后遍历这些元素的列表以获得所需的元素。
例如代码:
获取所有按钮:
buttons = driver.find_elements(:class=> 'button');
获取带有“Click Me”文本的按钮
clickMeButton = buttons.select{|el| el.text == 'Click Me'}.first
点击按钮:
clickMeButton.click
答案 2 :(得分:0)
您的代码在语法上看起来不正确,您应该尝试: -
driver.find_element(:xpath, "//button[normalize-space(text())='Click me']")
或
driver.find_element(:xpath, "//button[contains(text(), 'Click me')]")
注意: - 您的按钮文字似乎包含额外的空格。因此,为避免这些空格,您应在normalize-space()
xPath
希望它会对你有所帮助.. :)