如何点击只有文字的按钮?

时间:2016-07-06 03:42:05

标签: ruby selenium selenium-webdriver

我有一个没有课程的按钮,id只是一个文本

 <button> Click me </button>

我尝试了以下内容:

driver.find_element(:xpath, "//button[contains(text(), 'Click me'")]
driver.find_element(:xpath, "//button(text() = 'Clck me'")

这些都不起作用。有人能让我走上正确的道路吗?

3 个答案:

答案 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

希望它会对你有所帮助.. :)