seleniumを利用してvb.netでfirefoxで表示したページを操作したいのですが、セレクトボックスの選択が上手く出来ません。


http://stackoverflow.com/questions/21241310/how-best-should-i-interact-with-a-this-li-from-selenium-java-webdriver
上記ページを参考にvb.netに合わせて書き換えてみたのですが、以下の部分でNoSuchElementExceptionとエラーが出てしまいます。操作したいのは上記ページに書かれているサイトと同じサイトです。

Dim shoeSizeSel As FirefoxWebElement
shoeSizeSel = driver.FindElement(By.XPath("//li[@text()='" + Size + "']"))
shoeSizeSel.Click()

xpathでの指定が間違っているのでしょうか?他の部分でしょうか?
また、他の方法でもいいのでこの形式のセレクトボックスの選択方法を教えて欲しいです。テキスト部分で指定したいです。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2015/03/04 17:50:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:gizmo5 No.1

回答回数504ベストアンサー獲得回数141

ポイント300pt

試していないので自信はありませんが、VB.NET で文字列の連結は「+」ではなく「&」ではないでしょうか。

shoeSizeSel = driver.FindElement(By.XPath("//li[@text()='" & Size & "']"))

Nike のページを見てみると、靴のサイズには数字だけではなく行頭にタブと空白が入っているようです。
stackoverflow に書かれたコードは、正しく動作するでしょうか。
それとも java でも試されて動作を確認されたのでしょうか。

id:ooppeoppe

文字列の連結は「+」でも良いみたいです。
stackoverflowに書かれたコードが正しく動作するかどうかは確認していません。すみません。。
サイズはJP 26という風にJPから数字部分だけしか変数に入れていなかったので、変数部分を変数ではなくして、改行、タブ、半角スペースも入れて試してみましたがやはりNoSuchElementExceptionというエラーが出ます。改行だけ抜いてみてもはやりNoSuchElementExceptionと出ました。

2015/02/25 22:24:49
id:gizmo5

申し訳ありません。
java で試したかどうかをお伺いしたのは、stackoverflow の xpath の式が怪しいと思ったからです。
改行やタブを入れた xpath はどのようなものを試したのでしょうか。
NoSuchElementException が出るということは xpath の式がマッチしていないように思います。

試しに contains 関数を使ってみるとどうなるでしょうか。

//li[contains(., '9.5')]
2015/02/26 01:21:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません