在 Python 中使用 Playwright 选择特定 Web 元素时出现问题
Problem with selecting a specific web element with Playwright in Python
我在使用选择器指定 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")
不知道是不是语法问题。是否有另一种方法来指定此元素?
问题是,这些不是文本或输入元素,而是 divs,输入时正在更改内部 HTML。
您可以通过在浏览器中打开 WhatsApp、打开开发工具并在字段中输入内容来进行检查。
您可以通过 title
属性识别那些 div,因为它们似乎是独一无二的://div[@title="Search text box"]
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
我在使用选择器指定 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")
不知道是不是语法问题。是否有另一种方法来指定此元素?
问题是,这些不是文本或输入元素,而是 divs,输入时正在更改内部 HTML。 您可以通过在浏览器中打开 WhatsApp、打开开发工具并在字段中输入内容来进行检查。
您可以通过 title
属性识别那些 div,因为它们似乎是独一无二的://div[@title="Search text box"]
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