2016-05-10 30 views
2

私はjavascriptを次のように書かれているボタンの数を持っているWebページで働いている:どのようにSeleniumを介してonclick属性のjavascript要素をターゲットにするのですか?

<a href="javascript:;" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right"> 

セレンはJavaScriptを実行することができますが、私はトリガするjavascriptのクエリをフォーマットする方法は非常にわからないんだけど個々の購入ボタン。私が試した:

driver.execute_script("document.getElementById("test").onclick = "addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)").click() 

が、これは私にエラーMessage: document.getElementById(...) is nullを与えます。どのように私はそれを働かせようとしたものを変更することができますか?

+0

は私が偽のリンクを使用して思ったが、ブラウザスニッフィングで出て行きました。 'href =" javascript:; "' 3つのクラスが既にスタイリングするときのポイントは何ですか? – RobG

+0

問題のウェブサイトを書いていないので、なぜ彼らがそのようにしたのか分かりません。 – n1c9

答えて

2

これは、<a>タグにIDをtest追加していないためです。また、onclickハンドラの値に基づいて要素をルックアップすることは一般的にはお勧めできません。

固定コード:また

<a href="javascript:;" id="test" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right"> 

"は、前の文字列を終了しているため、あなたは、driver.executeスクリプトで'のためにあなたの"の1を切り替える必要があります。

例:

driver.execute_script('document.getElementById("test"),$(this),0)').click() 
関連する問題