2016-08-09 6 views
0

この要素構文をWatir Webdriverで実行するにはどうすればよいですか?watir webdriverはチェックボックスの入力要素を選択できません

driver.find_element(:xpath, "//input[contains(@id,'sv')]") 

CSS Selector: #sincro_old > section:nth-child(1) > section:nth-child(1) > div:nth-child(2) > nav:nth-child(1) > fieldset:nth-child(3) > section:nth-child(2) > ul:nth-child(1) > li:nth-child(23) > input:nth-child(1) 

ご意見をいただければ幸いです。

チェックボックスをチェックできるように要素を特定しようとしています。

REF: "ワチールのwebdriverをチェックボックスの入力要素を選択することはできません"

<li class="langlist-item"> 
     <input type="checkbox" id="sv" data-js-id-lang="27" class="form-checkbox form-checkbox--inline"> 
     <label for="sv" class="langlist-label" title="Svenska"> 
     <svg class="icon langlist-icon icon--inline icon--xs" role="img"> 
      <use xlink:href="https://www.bigbuy.eu/public/img/icons/svg-defs.svg#icon-sv"/> 
     </svg> 
     Svenska </label> 
</li>[enter image description here][1] 
+1

あなたの問題を再現するために、関連するHTMLを提供することはできますか?これがタイムアウトすると: 'b.checkbox(:id => 'sv')。when_present.set'はページ上に表示されないことを意味します。理由を知ることは有益でしょう。 – titusfortner

+0

これは、関連するHTMLを提供することです私はCSSセレクタを使用しようとしてきましたが、これまでに何も働いていませんでした。 –

+0

- <データJS-ID-のlang = "27" ID = "SV" タイプ= "チェックボックス" の入力クラス= "インラインフォームチェックボックスフォームチェックボックス"> : –

答えて

1

driver.find_element(:xpath, "//input[contains(@id,'sv')]")の、完全に同等では次のようになります。

browser.element(:xpath, "//input[contains(@id,'sv')]") 

同等、それ以上ワチールのような構文、使用します:idロケータの正規表現(部分的なテキストマッチングのため):

browser.input(id: /sv/) 

は、要素がチェックボックスで、idがダイナミックに見えない、それを行うために、より理にかなっていることを考える:

browser.checkbox(id: 'sv') 
+0

解決策が見つかりました。誰かが探しているなら、私の挑戦の解決策はここにあります: @@ browser.li(:class => 'dir'、:text /> /BS/).checkbox.set から[私は目に見える要素代わりに。私はテストを読みやすく、より安定していると思います。] [1] [1]:http://stackoverflow.com/questions/10822063/select-checkbox-with-hidden-input-type –

関連する問題