问题标签 [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 回答
264 浏览

docker - 基于 Python 的 Azure Functions 剧作家

我正在尝试使用 playwright 抓取一个网站并将其托管在 Azure Functions 上。但是,playwright 需要 Chrome 驱动程序,我似乎无法将其安装到 Azure Functions 中。

不确定如何在管道中执行此步骤:

以前,我尝试在 azure 管道中执行此操作:

但是,我得到了webkit" browser was not found.Please complete Playwright installation via running"python -m playwright install
Azure Function 似乎没有找到它的安装位置。有什么建议么?使用 Docker 会是一个好策略吗?

0 投票
0 回答
368 浏览

python - 找不到命令:Mac OS 上的 playwright 使用 pip 安装 lib

我正在尝试在 macOS 上安装 playwright,确实pip install playwright,一切顺利,安装成功,但是当尝试运行 playwright install 时,终端中返回以下内容:

我也用命令 q 关闭了终端并重新打开它,但还是一样,有什么想法吗?任何可以提供帮助的 Mac 用户?

0 投票
1 回答
771 浏览

python-3.x - 开始剧作家司机会议,但不隐身

目前我使用下面的代码打开一个新的浏览器会话,但它总是以隐身方式开始,我可以开始一个新的 chromium 会话而不是隐身方式吗?:

0 投票
1 回答
254 浏览

python - 无法使用 Playwright 和 BeautifulSoup 抓取元素

随着网站 ( https://covid19.gov.vn/ ) 的更新,我正在尝试更新我的网页抓取脚本,但我终生无法找到如何解析这些元素。检查元素,它似乎像往常一样在那里,但我无法用 BeautifulSoup 解析它。我最初的尝试包括使用 Playwright 并再次尝试,但我仍然无法正确抓取它。查看源代码几乎就像元素根本不存在一样。任何对 HTML 和网页抓取有更多了解的人都可以向我解释这是如何工作的吗?我几乎被困在这里

这基本上是我放弃查看页面源之前的最后一次尝试:

我的想法是抓取并遍历里面的所有内容。但是,它不起作用。如果有人可以帮助我,将不胜感激!谢谢!

0 投票
0 回答
178 浏览

pytest - Playwright-pytest - 测试的持久上下文 - 如何为每个测试创建一个新选项卡

我想知道是否有人可以提供帮助?

我目前正在为我的 UI 测试自动化使用 playwright-pytest。

在旧版本中,您可以在比赛文件中设置持久上下文,例如:

当 playwright-pytest 更新时,您现在被迫使用 scope="function" 这似乎为每个新测试加载一个新浏览器,而之前它加载了一次浏览器。如果将范围更改回会话,则会出现以下错误:

ScopeMismatch:您尝试使用“会话”范围的请求对象访问“函数”范围的夹具“browser_context_args”,涉及工厂

有没有一种方法可以让我使用函数范围只加载一次浏览器并为测试类中的每个测试创建一个新选项卡?

我的一个测试类的一个例子如下:

任何帮助将不胜感激,因为与范围为会话时相比,我的测试现在运行得如此缓慢。

0 投票
1 回答
670 浏览

python - 剧作家错误连接在docker中被拒绝

我正在尝试在 docker 中以无头模式运行 end-2-end 测试并获取playwright._impl._api_types.Error: net::ERR_CONNECTION_REFUSED at http://app/. 它只发生在铬和火狐中。Webkit 可以工作,但查找选择器也存在问题。当我从 localhost 运行 E2E 测试时,它们通过了。当我从本地主机发出请求时,请求成功。当我从 e2e-tests 容器制作 curl 时,请求也会成功。

码头工人-compose.yml :

铬:

火狐:

网络套件:

0 投票
1 回答
215 浏览

python - 用剧作家或请求解析网站部分

尝试解析 Coinbase 博客网站https://blog.coinbase.com/的部分,即 9 篇以下的第一篇文章,首先<div class="streamItem streamItem--section js-streamItem" data-action-scope="_actionscope_6">是获取最新消息(不知道如何在 coinbase 博客托管的中型平台上以其他方式进行操作)它是主页上的随机日期和搜索上的随机日期)但由于某种原因不能,首先尝试使用请求并且它有效,但直到本节才有效,并尝试使用下一个代码的剧作家:

同样的事情 - 在本节之前它一直有效

我也尝试过像这里https://scrapingant.com/blog/scrape-dynamic-website-with-python这样的抓取工具,它有效,但我需要通过请求或剧作家以其他方式解决它,更好地使用请求

0 投票
2 回答
290 浏览

python - 有没有办法在运行无头铬时关闭弹出窗口?

我正在使用 Playwright 库从网站获取数据。问题是该网站在打开时会显示一个弹出窗口,这会导致进程卡住,因为程序由于弹出窗口而无法获得任何按钮。

每次使用剧作家出现时,有没有办法关闭弹出窗口?

编辑:

页面正在创建一个弹出窗口。我检查了页面并了解到他们没有使用弹出窗口的模式,而是他们编写了内联 css 并将 div 装饰为弹出窗口。

0 投票
2 回答
315 浏览

automated-tests - Python剧作家:等待任意DOM状态

我一直在 Python (v1.16) 上使用 Playwright 工具,并认为我会迁移我们的一些 Cypress 测试作为实验。但是,我遇到了几个与同一个问题相关的障碍:我需要等待一些任意的 DOM 状态,但不知道如何。

我知道 Playwright 可以等待一些元素状态,例如可见或分离,但我也想要一些等待其他 DOM 状态的东西,比如文本出现,元素属性具有特定值,或者元素中的 HTML 结构改变等

例如,在一个测试中,我有一个进度指示器,它会在表格完成后一秒左右更新。我想断言进度百分比达到预期值,但为了做到这一点,我需要等待进度元素的文本相应更改。如果不编写自己的投票方案,我不知道如何做到这一点。

在另一种情况下,我有一个Submit以这种“非常酷”的动态方式构建的按钮,它使用.disabledCSS 类向用户指示他们无法提交表单(该按钮还具有动态应用/删除其点击处理程序以强制执行禁用状态)。Playwright 对此一无所知,并认为该按钮已准备好在调用后立即被单击,click()因为所有可操作性检查都会立即通过。在调用之前,我需要等待disabled类从按钮中删除click()。我怎样才能做到这一点?

我知道我可以为包含我想要等待的 DOM 位的元素创建新的选择器(例如text=5%,向我的进度指示器选择器添加条件),但我不喜欢这样,因为如果它失败,我会得到一个通用的“我们找不到选择器”错误,而不是更类似于断言的错误,例如“等待元素的文本包含 5% 失败”。我还使用页面对象来存储我的选择器,如果我必须为每个元素上的每个断言创建一个新的选择器,那真的很糟糕。

是否有一种惯用的方式来等待不涉及复制/修改选择器的任意 DOM 状态?

0 投票
1 回答
60 浏览

python - AttributeError:“NoneType”对象没有属性“inner_html”

我正在使用 Playwright Python,但在我的某段代码中出现此错误,我想知道这是一个错误还是我做错了什么。这是代码:

结果:

但我绝对确定这个表存在并且有内容,如果我通过 Selenium 它识别正常,我想知道出了什么问题。