2017-09-09 23 views
2

私の悪い英語をお詫びしますが、本当に助けが必要です。 私は、C#でInternet Explorerを自動化しようとしていますが、外部のWebサイト(btw。私は良い意思を持っています:D)でフォーミュラを記入するためにselenium-webdriverを使用しています。selenium-webdriverを使用してjstreeのすべてのノードを展開する

私の問題は、動的にロードされるjstree内のノードを選択することです。ノードを選択すると、新しいul要素がWebサイトによって生成され、親ノードがクリックされ、生成されるまで、xPathes経由でセレンのwebdriverでそれらを見つけることができません。 jstreeのすべてのノードをjavascriptまたはcodebehindで拡張できますか? hmlコードは次のようになります。

<div id="tree" class="jstree jstree-0 jstree-focused jstree-classic"> 
<ul> 
<li class="jstree-opened"> 
<a class="" href="#"> 
<ins class="jstree-icon"></ins> 
Nodetext 
</a> 
<ul></ul> 
</li> 
<li class="jstree-closed"> 
<a class="" href="#"> 
<ins class="jstree-icon"></ins> 
Name of Node 
</a> 
</li> 
</ul> 

上記のコードがどのようになっているかを示す写真。

enter image description here

答えて

0

私は、コードスニペットの下にしようとしたjstreeデモに取り組んだ:https://www.jstree.com/demo/

('#jstree_demo').jstree('open_all'); 

は、まずあなたのjstree上で動作することができ、コードの上ご確認ください。 その後、セレンAPIを使用することができます。driver.execute_scriptを()以下のようにブラウザ上で上記のコードを実行する:

Javaの例:

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("return ('#jstree_demo').jstree('open_all');"); 

JavaScriptの例:

driver.executeScript("return ('#jstree_demo').jstree('open_all');"); 

Pythonの例:

driver.execute_script("return ('#jstree_demo').jstree('open_all');"); 
関連する問題