2016-07-06 73 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() .. :)