问题标签 [playwright-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1252 浏览

python - 使用 Python-playwright,如何在不将其保存到磁盘或使用临时文件的情况下制作屏幕截图?

我想使用 Python Playwright 制作屏幕截图并将该屏幕截图交给 REST API。我在这里找到了一个示例,该示例制作了屏幕截图并将其保存到文件中:

如何在不将其保存到磁盘或使用临时文件并将其传递给 REST 调用的情况下制作屏幕截图?

0 投票
1 回答
3237 浏览

python - 在 Python 的 Playwright 中,我如何获取与 ElementHandle 相关的元素(孩子、父母、祖父母、兄弟姐妹)?

在 playwright-python 中,我知道我可以获得elementHandleusing querySelector().

示例(同步):

如何基于 this 获取与 this 相关的 an 元素elementHandle?即父母,祖父母,兄弟姐妹,孩子处理?

0 投票
2 回答
1577 浏览

python - 在 Python 的 Playwright 中,如何从框架 (iframe) 中检索元素的句柄?

我已经成功地在 python 中使用 Playwright 从页面中获取元素。我现在遇到了从嵌入iframe的文档中获取元素的挑战。例如,我使用w3schools 页面来解释<option>element,它在 iframe 中显示结果。我正在尝试<option>从 iframe 中检索此元素的句柄。

在页面上获取 an 元素的“正常”方式page.querySelector()无法获取 an elementHandle,这只是打印<class 'NoneType'>

我首先尝试显式获取 iframe 的句柄,但这会产生相同的结果(<class 'NoneType'>):

如何从 iframe 中获取内容?

0 投票
1 回答
1232 浏览

python - Python Playwright 同步与异步 API 有什么区别?

我已经开始学习playwright-python并且包playwright有两个子模块async_apisync_api. 但是,我找不到任何关于它们各自的优缺点的更深入的描述或讨论。根据他们的名字,我假设同步 API 调用是阻塞的,而异步调用在后台运行?

它们的功能是否不同,即是否存在sync_api无法完成您可以使用async_api(反之亦然)完成的事情的情况?

0 投票
0 回答
188 浏览

playwright-python - 如何使用 playwright-python 删除只读属性

我尝试使用以下代码使用 playwright-python 删除输入只读属性:

但我总是得到"passed function is not well-serializable!"错误。有人可以帮助我吗?

0 投票
1 回答
1935 浏览

playwright-python - 如何在使用 playwright-python 运行的代码结束时保持浏览器打开?

我想使用 playwright-python 自动填写一些表格。然后在提交前仔细检查填写。但它总是在代码运行结束时关闭浏览器。即使我使用了handleSIGHUP=False, handleSIGINT=False, handleSIGTERM=False启动参数,并且没有在我的代码中使用任何page.close()browser.close(),它仍然会在代码完成后关闭浏览器。

有谁知道该怎么做?

0 投票
1 回答
702 浏览

python - 如何使用 Playwright for Python 捕捉浏览器对话框(例如“下载或打开”)?

我试图在 Firefox 中使用 Playwright for Python 处理浏览器对话框(在这种情况下,但我猜浏览器无关紧要),即 Firefox 打开询问是否打开或保存文件的对话框。单击按钮后会弹出对话框。该文件的链接未公开,因此我无法以其他方式下载它。

我试着捕捉一个dialog事件:

超时。然后我想我在这个 GitHub ticket中找到了解决方案。但是,以下内容也不起作用:

这些类型的对话框 - 与 JavaScript引发的对话框相比alert()- 不会触发dialog事件吗?从这篇文章的答案来看,我认为他们可能不会:Is it possible to catch browser's File Open/Save dialog event using Javascript

如果是这样,我如何使用 python-playwright 接受或关闭这样的对话框?

0 投票
1 回答
214 浏览

python - 如何使用 Python 在 Azure Cloud 上运行 python playwright

我正在尝试部署从 web 中提取数据的计时器触发功能。我正在使用剧作家访问。我的代码在我的本地机器上按预期运行。但是,当我尝试在云上部署时,它说:

Result: Failure Exception: Exception: ================================================================================ "chromium" browser was not found. Please complete Playwright installation via running "python -m playwright install" ================================================================================ Stack: File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 353, in _handle__invocation_request call_result = await fi.func(**args) File "/home/site/wwwroot/AsyncFlight/__init__.py", line 21, in main browser = await p.chromium.launch() File "/home/site/wwwroot/.python_packages/lib/site-packages/playwright/async_api/_generated.py", line 9943, in launch raise e File "/home/site/wwwroot/.python_packages/lib/site-packages/playwright/async_api/_generated.py", line 9921, in launch await self._impl_obj.launch( File "/home/site/wwwroot/.python_packages/lib/site-packages/playwright/_impl/_browser_type.py", line 73, in launch raise not_installed_error(f'"{self.name}" browser was not found.')

我检查了我的消费计划,我的云上的操作系统是 Linux 并且"azureFunctions.scmDoBuildDuringDeployment" 设置为 true。我在 requirements.txt 中包含了剧作家。不知道我错过了什么。请帮忙!!

谢谢

0 投票
2 回答
725 浏览

automation - 无法启动 webkit 或与 playwright 截屏

但它适用于铬。

编剧:1.8.0 节点:14.15 Ubuntu:20.04

这是我的代码。

0 投票
1 回答
664 浏览

automation - 在 Playwright 中为请求使用另一个 URI 或路由

下面是我的代码。当应用程序提供服务并开始测试时,它使用我传入的 BASE_URL await page.goto(BASE_URL)。我想为我的所有请求使用另一条路线。