【发布时间】:2013-11-04 14:11:30
【问题描述】:
我正在 python 中使用 selenium 编写一个测试脚本。我有一个包含这样的树视图对象的网页:
我想遍历菜单以转到所需的目录。加号/减号指示的相应 HTML 代码如下:
<a onclick="changeTree('tree', 'close.gif', 'open.gif');">
<img id="someid" src="open.gif" />
</a>
图片的src属性可以是open.gif或close.gif。
我可以通过检查img 标签的src 属性来检测天气的好坏。我还可以使用.find_element_by_xpath("..") 轻松访问父标签a。
问题是我无法在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;
}
}
编辑 2:
我在 Google 上搜索了几个小时,发现触发 Javascript 事件和来自网络驱动程序的点击操作存在问题。此外,我的网页中有一个span 标记,它有一个onclick 事件,我也有这个问题。
【问题讨论】:
-
我假设没有错误被抛出?附近是否有附加了 javascript 的元素?
-
@MrTi,是的,没有错误,当然还有一些js代码。我不知道这怎么可能相关。
-
你能发布监听加/减点击事件的javascript代码吗?
-
@MrTi,我把问题里的js代码贴出来了,请问js代码和问题的关系吗?
-
我正在寻找在点击发生时调用
changeTree()的代码。这将有助于确保您的 selenium 代码点击正确。
标签: python selenium click dom-events