gpt4 book ai didi

javascript - casperjs,可能需要另一种点击方法?

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:41 25 4
gpt4 key购买 nike

我是casperjs的新手,据我目前的了解,只有两种点击方法可以触发鼠标 Action :

  • click() 需要一个选择器
  • clickLabel() 标签之间需要“label”

我现在处理的网站有动态“选项卡”,通过单击每个选项卡,触发 javascript 提交,没有与每个选项卡关联的“类”、“id”或“标签”,除了“图片”元素:

<a href="javascript:submitTab('search6')" tabindex="6">
<img src="image6off.gif" name="imag6" height="6" hspace="0" vspace="0" border="0" onmouseover="nbGroup('over','imag6','image6on.gif','image6on.gif',1);" onmouseout="nbGroup('out');" onclick="nbGroup('down','group1','imag6','image6off.gif',1); submitTab('search6')" alt="New Search">
</a>

我尝试使用 clickLabel() 但失败了。

是的,我可以使用 XPath,但问题是选项卡的数量是动态的,具体取决于每个记录的可用信息,因此在这种情况下,“新搜索”可能是该记录的选项卡 6,但另一个记录的选项卡 4,标签 8 在另一个中。

是的,我可以尝试编写一个“循环”来遍历所有可用的选项卡,但是,如果有一种结合了

waitForResource()

那太好了,因为我可以使用“image6on.gif”来告诉程序要单击哪个图像或选项卡,显然,对于这个网站,我发现每个不同的 javascript 提交选项卡程序都与一个唯一关联“图像#on/off.gif”

我希望casperjs的一些贡献者可以轻松实现这种方法来处理这种情况。

最佳答案

不完全确定这是否是您想要的,但您可以根据 tabindex 属性获取选项卡:

casper.click("a[tabindex='6']");

编辑:我根据您在下面的评论拼凑的 Hack:

casper.thenEvaluate(function() {
var attr = document.querySelector('img[alt="New Search"]').parentNode.getAttribute('tabindex');
__utils__.click('a[tabindex="' + attr + '"]');
});

casper.thenEvaluate() 允许您在远程页面上执行 javascript。

__utils__ 被注入(inject)到每个加载的页面中,作为您可以使用的一组额外函数。

关于javascript - casperjs,可能需要另一种点击方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18244010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com