gpt4 book ai didi

javascript - 使用 jQuery for casperjs 选择按钮

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

我想使用 casperjs 选择一个按钮,但我的问题是该按钮的 IDclasses 发生了变化。我只能根据完成的 span 2 个级别的文本来“识别”按钮:

<button class="changes-always" id="changes-always-too">
<div class="changes-always2">
<span class="changes-always3">Same text</span>
</div>
</button>

使用 jQuery,我可以通过首先选择 span 来选择按钮,因为它始终具有相同的内容。

var span = $('span:contains("Same text")');
var button = span.parent().parent() // there is probably a nice way to do this

我通过 casperjs 加载了 jQuery,将其包含为 clientScripts,我的问题是如何正确使其与 evaluate(function() 一起工作code> 以及使用 casperjs 使用变量作为选择器(如果可能的话)

这就是我所取得的进展,但后来我遇到了 objectstring 问题。

casper.then(function() {
var items = this.evaluate(function () {
return $('span:contains("Some text")');
});
console.log(items);
});

如果有人能给我指出正确的方向,如何使用 jQuery 作为选择器,然后让 casperjs 使用它,那就太好了。提前多次致谢!

最佳答案

如果文本是唯一的,您还可以使用 clickLabel()。

casper.clickLabel("Some text");

这也适用于按钮。

另一个选项,但仍然没有使用jquery,应该是通过文本获取id,如果有时有相同的文本,则通过索引抓取它们:

...
var x = require('casper').selectXPath;
var buttonIDs;
// get button ID's with specific text by getElementsAttribute with xPath selector
buttonIDs = casper.getElementsAttribute(x("//button[contains(text(),'Some specific text')]"), 'id');
casper.then(function() {
casper.echo(buttonIDs);
});
casper.then(function() {
casper.click("button[id='" + buttonIDs[0] + "']");
});

...

关于javascript - 使用 jQuery for casperjs 选择按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090512/

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