nightmare/electron,如何根据元素是否存在进行不同的操作?
nightmare/electron, how to carry out different operations depend on whether an element exists?
我想用Nightmare
访问一个页面,根据指定元素是否存在做不同的操作。我知道有一个exists
函数可以检测页面上是否存在一个元素,但是不知道怎么用,也不知道这里能不能用。有人可以给我一个关于如何完成这项任务的例子吗?谢谢!
Nightmare 是可行的,所以如果你想使用 exists()
函数的 return 值作为逻辑,你可以使用 .then()
进行方法链接。这也适用于 visible()
或 evaluate()
或任何函数 returning 值。
如果搜索框选择器存在,我提供的示例会搜索 Whosebug,然后转到 Google、return 标题,然后有条件地记录结果。您可以根据需要继续链接逻辑。
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto("http://whosebug.com")
.exists("#search input[type=text]")
.then(function (result) {
if (result) {
return nightmare.type("#search input[type=text]", "javascript\u000d")
} else {
console.log("Could not find selector")
}
})
.then(function() {
return nightmare
.goto("http://www.google.com")
.wait(1000)
.title()
})
.then(function (title) {
if (title == "Google") {
console.log("title is Google")
} else {
console.log("title is not Google")
}
return nightmare.end()
})
.catch(function (error) {
console.log(error)
})
我想用Nightmare
访问一个页面,根据指定元素是否存在做不同的操作。我知道有一个exists
函数可以检测页面上是否存在一个元素,但是不知道怎么用,也不知道这里能不能用。有人可以给我一个关于如何完成这项任务的例子吗?谢谢!
Nightmare 是可行的,所以如果你想使用 exists()
函数的 return 值作为逻辑,你可以使用 .then()
进行方法链接。这也适用于 visible()
或 evaluate()
或任何函数 returning 值。
如果搜索框选择器存在,我提供的示例会搜索 Whosebug,然后转到 Google、return 标题,然后有条件地记录结果。您可以根据需要继续链接逻辑。
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto("http://whosebug.com")
.exists("#search input[type=text]")
.then(function (result) {
if (result) {
return nightmare.type("#search input[type=text]", "javascript\u000d")
} else {
console.log("Could not find selector")
}
})
.then(function() {
return nightmare
.goto("http://www.google.com")
.wait(1000)
.title()
})
.then(function (title) {
if (title == "Google") {
console.log("title is Google")
} else {
console.log("title is not Google")
}
return nightmare.end()
})
.catch(function (error) {
console.log(error)
})