Select 按钮与 jQuery for casperjs
Select button with jQuery for casperjs
我想 select 带有 casperjs
的按钮,但我的问题是该按钮已更改 IDs
和 classes
。我只能"identify"这个按钮,根据一个span
的文字做了2个关卡:
<button class="changes-always" id="changes-always-too">
<div class="changes-always2">
<span class="changes-always3">Same text</span>
</div>
</button>
使用 jQuery 我可以 select button
,首先 selecting 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()
一起工作以及使用select 或 casperjs
的变量(如果可能的话)
这就是我的进展,但后来我 运行 遇到了 object
和 string
问题。
casper.then(function() {
var items = this.evaluate(function () {
return $('span:contains("Some text")');
});
console.log(items);
});
太好了,如果有人能指出正确的方向,如何将 jQuery
用作 selector 然后让 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] + "']");
});
...
我想 select 带有 casperjs
的按钮,但我的问题是该按钮已更改 IDs
和 classes
。我只能"identify"这个按钮,根据一个span
的文字做了2个关卡:
<button class="changes-always" id="changes-always-too">
<div class="changes-always2">
<span class="changes-always3">Same text</span>
</div>
</button>
使用 jQuery 我可以 select button
,首先 selecting 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()
一起工作以及使用select 或 casperjs
的变量(如果可能的话)
这就是我的进展,但后来我 运行 遇到了 object
和 string
问题。
casper.then(function() {
var items = this.evaluate(function () {
return $('span:contains("Some text")');
});
console.log(items);
});
太好了,如果有人能指出正确的方向,如何将 jQuery
用作 selector 然后让 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] + "']");
});
...