Zei*_*zar 7 python selenium click dom-events
我在python中使用selenium编写测试脚本.我有一个包含树视图对象的网页,如下所示:

我想遍历菜单转到所需的目录.正负表示的HTML代码如下:
<a onclick="changeTree('tree', 'close.gif', 'open.gif');">
<img id="someid" src="open.gif" />
</a>
Run Code Online (Sandbox Code Playgroud)
src图像的属性可以是open.gif或close.gif.
我可以通过简单地检查标签的src属性来检测天气有正负img.我也可以很容易地访问父标签,a通过使用.find_element_by_xpath("..").
问题是,我不能在没有进行点击操作img,也没有a标签.
我试过了webdriver.Actions(driver).move_to_element(el).click().perform(); 但它不起作用.
我想我应该提到访问元素没有问题,因为我可以打印所有属性; 我只是无法对它们执行操作.有帮助吗?
编辑1:
这是用于折叠和展开树的js代码:
function changeTree(tree, image1, image2) {
if (!isTreeviewLocked(tree)) {
var image = document.getElementById("treeViewImage" + tree);
if (image.src.indexOf(image1)!=-1) {
image.src = image2;
} else {
image.src = image1;
}
if (document.getElementById("treeView" + tree).innerHTML == "") {
return true;
} else {
changeMenu("treeView" + tree);
return false;
}
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑2:
我用Google搜索了几个小时,我发现触发javascript事件和来自网络驱动程序的点击操作存在问题.另外span,我的网页上有一个标签,有一个onclick事件,我也有这个问题.
Zei*_*zar 17
一些类似的尝试后.execute_script("changeTree();"),.submit()等,我已经通过解决问题ActionChains类.现在,我可以单击他们拥有java脚本事件的所有元素onclick.我使用的代码是这样的:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('someURL')
el = driver.find_element_by_id("someid")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()
Run Code Online (Sandbox Code Playgroud)
我不知道它是发生在我身上还是什么,但我发现我应该在关键命令之前找到该元素; 否则脚本不执行该操作.我认为这与隐藏元素或类似的东西有关; 无论如何,感谢所有人的关注.
| 归档时间: |
|
| 查看次数: |
18398 次 |
| 最近记录: |