2013年3月13日水曜日

プルダウンメニューをWebDriverに選んでもらう

いわゆる

こーいうの
これをWebDriverに選んでもらいたいけどちょっと詰まったのでメモメモφ(・ω・ )

プルダウンメニューをWebDriverで選択する

たとえば, 
<select name="preview">
    <option value="0">おはよう</option>
    <option value="1">こんにちわ</option>
    <option value="2">こんばんわ</option>
    <option value="3">おやすみ</option>
</select>
こんな <Select>があったとすると
ただの Select- optionのプルダウンメニューならサポートしてくれているらしい.
Select selector = new Selector(driver.findElement(By.name("preview")));
これで準備完了. 試しに 「こんにちわ」 を選びたいなら,
selector.selectByValue("1");
selector.selectByIndex(1);
selector.selectByVisibleText("こんにちわ");
など, optionの value, id, 表示テキストで選択できる親切設計.

…ってこここことかここを参考にしてみたけれど…(・д・`)できない

なんでだろうとみてみると
Element should have been "select" but was "input"
なんて警告.
なんか 「inputよこしてるぞゴルァ!щ(゚Д゚#щ) =3」的な話?

こことか眺めていると, どうやらカスタムしたような<select>には対応していないみたいな空気.
…べつにカスタムしてないと思うんだけどなぁ…(・ω・`)

とか思ってたら原因は
nameで locaterを指定していたら, <select>ではなく別の<input>を指定していた
模様. くだらなすぎる…orz
今一度 classや nameに被りがないかちゃんと確認を…(・ω・`)

ちなみにできないと思って探してみた違うやり方.
WebElement selector = driver.findElement(By.name("preview"));
selector.findElement(By.xpath("//option[@value='1']")).click();
いちおうこれでも選択はできた. できたけど…('A`)
まぁ 最後の手段 的なやり方ってことで…





というかプルダウンメニューがここに貼れたことにびっくり( ゚д゚ )

0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...