使用 selenium-webdriver 扩展 jstree 的所有节点
Expanding all Nodes of jstree using selenium-webdriver
我为我糟糕的英语道歉,但我真的需要帮助。
我正在尝试使用 selenium-webdriver 在 c# 中自动化 Internet Explorer 以填充外部网站上的公式(顺便说一句。我有良好的意图 :D)。
我的问题是 select 动态加载的 jstree 中的节点。 selecting 一个节点后,网站生成了一个新的 ul 元素,我无法通过 xPathes 使用 selenium 的 webdriver 找到它们,直到单击父节点并生成这些元素。
你能帮我用 javascript 或代码隐藏扩展 jstree 中的所有节点吗?
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
我尝试了下面的代码片段并在 jstree 演示上工作:https://www.jstree.com/demo/
('#jstree_demo').jstree('open_all');
请先检查以上代码是否可以在您的 jstree 上运行。
然后你可以使用 selenium api: driver.execute_script() 在浏览器上执行上面的代码如下:
Java 示例:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return ('#jstree_demo').jstree('open_all');");
Java脚本示例:
driver.executeScript("return ('#jstree_demo').jstree('open_all');");
Python 示例:
driver.execute_script("return ('#jstree_demo').jstree('open_all');");
我为我糟糕的英语道歉,但我真的需要帮助。 我正在尝试使用 selenium-webdriver 在 c# 中自动化 Internet Explorer 以填充外部网站上的公式(顺便说一句。我有良好的意图 :D)。
我的问题是 select 动态加载的 jstree 中的节点。 selecting 一个节点后,网站生成了一个新的 ul 元素,我无法通过 xPathes 使用 selenium 的 webdriver 找到它们,直到单击父节点并生成这些元素。 你能帮我用 javascript 或代码隐藏扩展 jstree 中的所有节点吗? 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
我尝试了下面的代码片段并在 jstree 演示上工作:https://www.jstree.com/demo/
('#jstree_demo').jstree('open_all');
请先检查以上代码是否可以在您的 jstree 上运行。 然后你可以使用 selenium api: driver.execute_script() 在浏览器上执行上面的代码如下:
Java 示例:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return ('#jstree_demo').jstree('open_all');");
Java脚本示例:
driver.executeScript("return ('#jstree_demo').jstree('open_all');");
Python 示例:
driver.execute_script("return ('#jstree_demo').jstree('open_all');");