2

在我正在自动化的网站中,我有一个禁用的输入框。

在网站上,它显示一个数字,例如“1”,并具有其他元素来更改值。

<input data-v-a6368fd8="" id="base-amount-input-211" max="10" name="Counter" disabled="disabled" type="number" class="amount-input__number amount-input__number--active">

当我查询元素时

handle = page.querySelector('//input[starts-with(@name, "Counter")]')

我得到了句柄的结果。

当我尝试读取句柄内容时

handle.innerText() 

handle.innerHTML()

都是空的 ('')

如何访问当前输入值?

4

3 回答 3

3

另一种方法是简单地使用 的getAttribute()方法elementHandle来检索值:

handle = page.querySelector('//input[starts-with(@name, "Counter")]')
value = handle.getAttribute("value")
于 2020-12-23T15:28:38.447 回答
2

对于输入元素,element.value返回填充的内容。您可以使用page.evalOnSelector在页面中针对此选择器运行 JS 并获取值。

selector = '//input[starts-with(@name, "Counter")]'
value = page.evalOnSelector(selector, "(element) => element.value")
于 2020-11-11T16:59:55.003 回答
0

目前,虽然 arjunattam 的答案仍然有效,尽管evalOnSelector()被替换为eval_on_selector(),但最简单的方法是使用input_value()函数:

handle = page.query_selector('//input[starts-with(@name, "Counter")]')
value = handle.input_value()

buddemat 的答案不起作用,不应使用。

于 2022-01-18T19:59:33.773 回答