1

次のようなコードのボタンがあります。

<input type="button" onclick="someFunction();" value="doSomething">

Selenium2 でこのボタンをクリックしようとしています。なんとか要素を取得できましたが、Chrome で click() 関数が機能しません。

JavaScript で直接実行しようとしましたが、Chrome ではまだ動作しません。

ボタンを直接クリックすると機能し、Firefox でも機能します。

誰でもこれを修正する方法について何か考えがありますか?

編集:私の例では括弧を忘れていました。それらは「実際の」コードに存在します。

Edit2: クリックをシミュレートするために使用される Selenium 2 コードは次のとおりです。

driver.findElement(By.tagName("input")).click();

誰かが尋ねる前に、ページには他に tagName "input" はありません。

4

4 に答える 4

6

一般的に言えば、インライン属性を使用してイベント ハンドラーを定義することはお勧めできません。代わりに、コンテンツ (HTML) と機能 (JavaScript) が分離されるように、JavaScript を使用してイベント ハンドラーをバインドすることを選択する必要があります。

ただし、問題は、実際に関数を呼び出していないことにあるようです。次のように変更します。

<input type="button" onclick="someFunction();" value="doSomething">
于 2012-08-28T13:36:36.047 に答える
1

関数ブラケット()で関数名を使用する必要があると思います

このように input type="button" onclick="someFunction(); " value="doSomething"

これがあなたに役立つことを願っています

于 2012-08-28T13:38:07.970 に答える
0

このように試すか、javascriptを別のファイルに入れてください。

<input type="button" value="doSomething" id="someFuncBtn">

<script type="text/javascript">
    $(document).ready(function () {
        $('#someFuncBtn').on('click', function(){
            someFunction();
        });
    });
</script>
于 2012-08-28T13:40:26.000 に答える
0

クリックに問題があることに気づきました。これは、時々少し奇妙に機能します。この方法でうまく機能します:

driver.findElements(By.tagName("input")).get(0).click();

それでも「時々」失敗しますが。理由はまだわかりませんが。

于 2012-08-30T09:08:39.263 に答える