JavaScriptを使用してJavaScriptからSelenium(Python)に戻し、その情報を使用して私のログのすべてのクリックされた要素。それはセレンとjavascriptを使用して達成することさえ可能ですか?JavaScriptからonclickを変数に返すか、グローバル変数をonclickで返す
この関数は要素を表示できますが、何も返しません(通常のonclick動作)。私はセレンを使って警告ポップアップからテキストを読むことができることを知っていますが、それはマウスクリックごとにブラウザを点滅させます。今セレンで動作するようには思えないのjavascriptはconsole.logにアクセスしようとし
はfunction getEl()
{
var ev = arguments[0] || window.event,
origEl = ev.target || ev.srcElement;
alert(origEL.text)
}
document.onclick = getEl;
そうにconsole.logを使用すると、正しい答えではありません。
クリックイベントでlocalstorageに何かを書き込んだり、pythonでlocalstorageの値をチェックすることで、特定の要素がクリックされたことを検出できます。しかし普遍的ではありません。私は観察したいすべての要素を見つけて設定する必要があります。その後
function find_element()
{
aTags = document.getElementsByTagName("a");
searchText = "comments";
for (var i = 0; i < aTags.length; i++)
{
if (aTags[i].textContent == searchText)
{
found = aTags[i];
return found;
}
}
}
found=find_element();
function saveEvent()
{
localStorage.setItem("ZAD1.1", "1");
}
if(found)
{
found.addEventListener("click",saveEvent,false);
var x=localStorage.getItem("ZAD1.1");
if (x=="1")
{
count="comments link was clicked";
return count;
}
}
あなたはPythonのセレン
z=driver.execute_script(javascript1)
if z=="comments link was clicked":
#do something with this information
からJavaScriptを呼び出すブラウザでユーザーがクリックしたオブジェクトの情報を取得する方法はありますか?私はFirefoxでSeleniumを使用しています。
EDIT: getEL()を使用してすべてのクリックされた要素を取得し、すべてのonclick出力をlocalstorageに書き込むことができます。
localStorage.setItem(origEl.text, origEl.text);
ローカルストレージを作成し、
var temp="VISITED LINKS : "
for (var i = 0; i < localStorage.length; i++){
temp +=localStorage.getItem(localStorage.key(i))+" ";}
return temp
は、その後、あなたのpythonにリスト全体を返すことができ
配列や文字列として一時を書きます。あなたは、Pythonにクリックされたオブジェクトを送信するために他の方法を考えることができますか?
なぜセレンに送信しますか?なぜあなたはその情報をいくつかのpython httpサーバに送信しないのですか? –
私はそのSelenium Scriptをローカルで動作する私の試験アプリケーションの一部として使用したいので。私の現在のスクリプトはfirefoxプロフィールを起動し、あなたが正しいリンクをクリックしたかどうかを確認します。あなたがそれをすると、それはあなたにポイントを与えます。 Seleniumはユーザーの入力を監視するように設計されていないことがわかっていますが、これは実行できると思います。監視されているjavascriptは、訪問されたすべてのウェブページから始まります。ユーザーがウェブページをクリックした正確な内容を監視するためのオープンソースツールは知られていません。私の場合、POSTSとGETSでは不十分です。 –
これは実際の動作のようです。 [link](http://s7.postimg.org/yox2swzy2/click.jpg) –