【问题标题】:Using Playwright for Python, how to I read the content of an input box使用 Playwright for Python,如何读取输入框的内容
【发布时间】:2021-02-23 16:20:18
【问题描述】:

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

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

都是空的 ('')

如何访问当前输入值?

【问题讨论】:

    标签: python playwright playwright-python


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 对于 python 它是 page.eval_on_selector
        猜你喜欢
        • 2017-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多