使用Playwright for Python,如何读取输入框的内容

问题描述

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

在网站上,它显示一个数字,例如“ 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()

都为空('')

如何访问当前输入值?

解决方法

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

selector = '//input[starts-with(@name,"Counter")]'
value = page.evalOnSelector(selector,"(element) => element.value")
,

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

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