11

HTML

<input class="button" type="button" onclick="$.reload('results')" value="Search">

この の ID も名前もありません。だから書いてる

FirefoxDriver driver = new FirefoxDriver();
driver.get("http://....");
driver.findElement(By.cssSelector("input[value=Search]")).click();

しかし、クリック()は起こっていません。

driver.findElement(By.cssSelector(".button[value=Search]")).click(); を試しました。

value='Search' (一重引用符) を試しました。

これらのセレクターは

.button[value=Search] {
padding: 10px;
}
input[value=Search] {
padding: 10px;
}
4

4 に答える 4

2

私はこの問題を解決することに自信を持ってjsの一部を注入します:

まず、DOMを使用して要素を検索します(firebugで確認します)。 位置を特定する

public void jsClick(){

        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("document.getElementsByTagName('button')[0].click();");
        js.executeScript(stringBuilder.toString());
    }
jsClick();

あなたの要素の回顧からそれは次のようになります:

....
stringBuilder.append("document.getElementsByTagName('input')[0].click();");
....

注意:document.getElementsByTagName('input') DOM要素の配列を返します。そして、それを適切に索引付けします。たとえば、document.getElementsByTagName('input')[0]、document.getElementsByTagName('input')1、document.getElementsByTagName('input')[2]....などを見つけることができます。あなたの要素。

これがお役に立てば幸いです。よろしく。

于 2012-10-24T12:49:50.200 に答える
1

以下のコードを使用してください。

driver.findElement(By.cssSelector("input[value=\"Search\"]")).click();

わたしにはできる。名前が「検索」であることを確認してください。大文字と小文字が区別されます。

ありがとう

于 2013-10-16T09:53:01.053 に答える
0

ページでこのCSSセレクター(input[value=Search])を使用すると、結果は1つだけになりますか?

于 2012-11-01T13:35:19.557 に答える