2016-07-06 76 views
0

我有没有类,ID只是一个文本如何用一个文本点击一个按钮?

<button> Click me </button> 

我尝试了以下按钮:

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

这些工作都不是。有人能把我放在正确的道路上吗?

+0

你应该加上'id'然后 – Raptor

+0

是否缺少一些报价? – Li357

+0

你使用水豚宝石? – shvetsovdm

回答

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 ']") 
0

如果它是没有问题的错字,尝试改变之后:

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

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

否则,发现所有的元素与页面上标记名称为“按钮”,然后遍历这些元素的列表以获得所需的元素。

EG码:

获取所有的按钮:

buttons = driver.find_elements(:class=> 'button'); 

获取文本按钮 '点击我'

clickMeButton = buttons.select{|el| el.text == 'Click Me'}.first 

点击按钮:

clickMeButton.click 
0

代码如下语法不正确,你应该尝试: -

driver.find_element(:xpath, "//button[normalize-space(text())='Click me']") 

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

注意: - 您的按钮上的文字似乎包含额外的空格。因此,对于避免这些空格,你应该在你的xPath

希望这将有助于您使用normalize-space() .. :)