javascript - 在 Python 中使用 Playwright 选择特定 Web 元素时出现问题

标签 javascript python html whatsapp playwright

我在使用选择器指定 HTML 输入时遇到问题。

我希望 Playwright 识别 WhatsApp TEXTBOX,以便我可以使用它,但没有 ID,甚至没有我可以指定的 CSS 元素。

首先,我尝试使用 DOC 上详细介绍的命令,从网站获取元素。

<div title="Search text box" role="textbox" class="_13NKt copyable-text selectable-text" contenteditable="true" data-tab="3" dir="ltr"></div>

但我无法指定要填充的搜索TEXTBOX,例如:

element.fill("contact name")

不知道这是不是语法问题。还有其他方法来指定这个元素吗?

最佳答案

问题是,这些不是文本或输入元素,而是 div s,输入时内部 HTML 会被更改。 您可以通过在浏览器中打开 WhatsApp、打开开发工具并在字段中输入内容来进行检查。

您可以通过 title 属性识别这些 div,因为它们似乎是唯一的://div[@title="搜索文本框"]

Playwright 无法更改 div 的内部 HTML,但您可以通过 Javascript 进行更改,并让 Playwright 对其进行评估。

Javascript 将是(您可以在开发工具的控制台中对其进行评估):

document.querySelector('div[title^=\'Search text box\']').innerHTML = 'contact name';

要从您的 python 代码中评估这一点:

page.evaluate('() => document.querySelector('div[title^=\'Search text box\']').innerHTML = 'contact name'')

有关更多详细信息,请参阅文档:https://playwright.dev/python/docs/evaluating

关于javascript - 在 Python 中使用 Playwright 选择特定 Web 元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71872089/

相关文章:

javascript - 通过模式复选框选择将一个文档添加到另一个文档

javascript - 如何检查数组是否具有相同的值?

javascript - Jquery 让父级仅在父级和子级未悬停时执行某些操作

python - 在Python中,如何模拟c扩展类?

python - 如何从html文件中删除所有不必要的标签和符号?

python - 如何通过 python 脚本发现应用程序使用的内存?

javascript - 如何在 JavaScript 中获取给定当前日期的一周中所有日期的数组?

javascript - 正则表达式 JS : Matching string between two strings including newlines

javascript - 在不同的选择框上更改选择框值

javascript - 将 div 分隔为 3 列