如何在casperJs中设置输入标记的值

时间:2013-08-11 12:45:24

标签: web-scraping phantomjs casperjs

我有输入元素如下所示:

<input type="text" class="bg-white" id="couponCode" value="">

如何使用casperJs设置/填充其值

2 个答案:

答案 0 :(得分:41)

答案 1 :(得分:0)

有几种不同的方法可用于完成此任务。

除非需要执行更复杂的操作,否则应使用casper.sendKeys()


casper.sendKeys()

如果您想在 CasperJS环境中设置值,并且input元素可选地位于form元素内,则您可以使用casper.sendKeys()

casper.sendKeys('#couponCode', 'Hello, world!');

casper.fill()

如果您想通过 CasperJS环境设置值,并且input元素位于内,并且< strong>包含一个form属性,则可以使用name

casper.fill()

casper.fillSelectors()

如果您想在 CasperJS环境中设置值,并且casper.fill('#form', { couponCode: 'Hello, world!', // #form [name="couponCode"] }); 元素位于input元素,则可以使用form

input

casper.fillLabels()

如果您想通过 CasperJS环境设置值,并且casper.fillSelectors()元素位于内,并且< strong>包含与文本关联的casper.fillSelectors('#form', { '#couponCode': 'Hello, world!', // #form #couponCode }); 元素,然后您可以使用input

form

casper.fillXPath()

如果您想在 CasperJS环境中设置值,并且label元素位于casper.fillLabels()元素,则可以使用casper.fillLabels('#form', { couponCode: 'Hello, world!', // #form label[text()="couponCode"] input });

input

casper.evaluate()

如果您想通过 Page DOM环境设置值,并且form元素可选地位于input元素内,那么您可以使用casper.fillXPath()

casper.fillXPath('#form', {
  '//*[@id="couponCode"]': 'Hello, world!', // #form #couponCode
});
  

注意:类似于input,您也可以使用:evaluateOrDie()thenEvaluate()thenOpenAndEvaluate()(如果您想完成相对于正在执行的步骤,一次执行两个或多个操作。