2016-07-06 6 views
0

は、私はクラス、IDだけでテキストテキストだけのボタンをクリックする方法は?これらの作業の</p> <pre><code>driver.find_element(:xpath, "//button[contains(text(), 'Click me'")] driver.find_element(:xpath, "//button(text() = 'Clck me'") </code></pre> <p>なし:

<button> Click me </button> 

私は、次の試してみましたがありませんボタンがあります。誰かが私を正しい道に踏み込めるだろうか?

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

にそれ以外の場合タグ名を「ボタン」として入力し、それらの要素のリストをたどって目的のものを取得します。

例:コード:

clickMeButton.click 

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

がボタンの上に

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

クリックして、 '私をクリックして' テキスト付きのボタンを取得します:

すべてのボタンを取得します。

0

あなたのコードは文法的に正しくないように見える、あなたがのように試してみてください: -

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

または

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

: - は、余分な空白が含まれているとして、あなたのボタンのテキストがそうです。だから、あなたが使用する必要がありますこれらの空白あなたxPath

normalize-space()が、それは..あなたを助けることを願っています:)

関連する問題

 関連する問題