问题标签 [selenium4]

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 投票
0 回答
26 浏览

selenium4 - 无法处理 chrome 中的身份验证弹出窗口

我必须处理浏览器身份验证,我的用户名是 DOMAINNAME\Administrator。我编写了以下代码来处理此身份验证弹出窗口。但我得到了错误。

错误信息:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:有关详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder。在端口 17025 上启动 ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634}) 只允许本地连接。请参阅https://chromedriver.chromium.org/security-considerations有关保持 ChromeDriver 安全的建议。ChromeDriver 已成功启动。2021 年 8 月 10 日上午 3:25:13 org.openqa.selenium.remote.ProtocolHandshake createSession 信息:检测到方言:线程“主”java.lang.NoSuchMethodError 中的 W3C 异常:org.openqa.selenium.chrome.ChromeDriver.getDevTools( )Lorg/openqa/selenium/devtools/DevTools;在 DEMO.Practice.DemooTest.main(DemooTest.java:23)

谁能帮我解决这个问题?

0 投票
2 回答
1102 浏览

c# - 无法从程序集“WebDriver,版本=4.0.0.0,文化=中性,PublicKeyToken=null”加载类型“OpenQA.Selenium.Internal.IWrapsElement”

我正在使用 C# 使用 selenium 和 specflow 创建自动化测试。今天我不得不将 Selenium.WebDriver 更新到 4.0.0-beta4 版本,因为日志记录功能在以前的版本中存在一个带有 AvailableLogTypes 属性的错误,它总是抛出空引用异常。更新到 selenium 4 后,又出现了另一个问题。构建工作正常,没有错误或警告,但是当我运行测试时,会引发以下异常:

来自 selenium 的官方发行说明:

根据https://github.com/SeleniumHQ/selenium/blob/master/dotnet/CHANGELOG中的 v4.0.0a1 将 IWrapsDriver 和 IWrapsElement 从 OpenQA.Selenium.Internal 命名空间移动到 OpenQA.Selenium 命名空间。这应该是否-op 适用于绝大多数用户,只需要重新编译代码,因为这两个接口都具有基本命名空间中的返回类型,这意味着用户可能已经在其源代码中具有根命名空间的“使用”语句。如果错误遇到,更改代码中的命名空间并重建应该可以解决错误。”

我仔细检查了所有出现的 OpenQA.Selenium.Internal 命名空间,发现这个命名空间甚至没有在我的代码中使用。所以我认为一切都会好起来的,但没有......

后来我发现如果我删除 DotNetSeleniumExtras.PageObjects nuget 包,一切正常。这很好,但我需要这个包能够使用 PageFactory.InitElements() 进行页面对象初始化,并使用 FindsBy 属性绑定 UI 元素。我检查了 DotNetSeleniumExtras.PageObjects 包,它也使用了 selenium 4。

你有什么想法如何解决这个问题?如果您需要查看源代码,请告诉我(它非常广泛,所以我不想让这篇文章变得臃肿)

0 投票
0 回答
63 浏览

google-chrome - 无法使用 Selenium 4 beta 4 启动 Chrome 浏览器

当我运行以下代码片段时

使用 Selenium 4 beta 启动 Chrome 驱动程序时出现以下错误

我尝试调试,但是,调试器在 DriverService 中找不到第 441 行。

有没有人遇到同样的问题?如何解决?

0 投票
1 回答
433 浏览

java - 在 Selenium 4 中关闭来自 webdrivers 的浏览器日志记录

我正在开发一个 Java (11) 项目,我们需要使用 Edge-Chromium(通过 docker 容器在 Linux 上运行)进行一些测试,所以我不得不将我们正在使用的 Selenium 版本升级到 4.0 .0-beta-4。

我已经设法让这个位工作但是在升级时似乎当我现在运行任何类型的测试(本地或通过容器)时,日志充满了 GET/POST 请求,就好像浏览器本身正在输出它的所有跟踪级别的活动,包括看起来像是访问页面的内存转储(下面的示例,想象这个 x 500,这就是日志看起来完全难以辨认的样子):

这实际上影响了我使用过的所有浏览器(Edge、Chrome 和 Firefox),它们都输出相同的活动,这让我相信这与 Selenium 升级本身以及它附带的软件包有关,而不是专门针对 Edge。

到目前为止我已经尝试过:

  • 从 4.0.0-alpha-7 到 4.0.0-beta-4 不同口味的 Selenium 4,似乎都有相同的结果。
  • 传递日志记录首选项,无论我输入什么值,这些似乎都没有区别:
  • 为 logback-test.xml 添加行以不报告硒的任何日志记录:
  • 尽管此问题似乎与我遇到的问题略有不同,但此处概述的步骤。

唯一给我带来任何成功的事情是在 logback-test.xml 中设置以下内容,但它会禁用项目中添加的所有跟踪日志记录,这并不理想:

因为这特别是一个日志记录问题(其他一切都在工作)我觉得我错过了一个明显的记录器或 Selenium 4 中包含的项目,我只需要关闭它,但我无法弄清楚哪个记录器它是 -任何人有任何想法我可以找到这些信息或我需要抑制哪个记录器? 我的猜测是它与适当的浏览器驱动程序(例如 EdgeDriver)或 WebDriver 有关,但我认为应该通过关闭 org.openqa.selenium 来获取这些驱动程序。

0 投票
0 回答
52 浏览

java - WebDriverListener 'BeforeClick' 不包含驱动程序

所以我在 Selenium 3 中使用了很多“WebDriverEventListener”功能。现在,当迁移到 Selenium 4 时,出现了一个名为“WebDriverListener”的新类。我的问题是我正在使用“WebDriverEventListener”中存在的方法驱动程序:

现在在“WebDriverListener”中不存在:

我知道我可以将驱动程序转移到实现新接口的类,但这是一个丑陋的解决方案,我想建议有人知道是否有一个好看的经典方法来做到这一点。谢谢 !

0 投票
2 回答
108 浏览

selenium-grid - Selenium Grid 4 是否与 v3 客户端兼容?

在我花费数小时设置 Selenium v​​4 Grid 之前,有人可以确认它与现有客户端向后兼容吗?

我在官方文档和搜索中都找不到任何东西。

我们有一个本地 v3 实现,所有客户端(主要是 .NET 和 Java)都是 v3,所以我正在评估迁移工作。

0 投票
2 回答
135 浏览

selenium - 如何为旧版 Chrome 设置 Selenium 4?

由于某些项目原因,我必须使用 Selenium 4(4.0.0-rc3)和 Chrome 版本 71。当然,当前的 chromedriver(版本 94)不适用于旧版 chrome。

我已经下载了 chromium 项目的源代码进行调试,并尝试了解驱动程序实际上是如何与 selenium 一起工作的。可能我会尝试制作自己的驱动程序版本,但目前这似乎是一个低效的解决方案。

我真的坚持这一点,很乐意得到任何建议。是否可以通过功能(或任何参数)配置驱动程序以使用旧 chrome?

0 投票
1 回答
931 浏览

selenium-webdriver - Selenium 网格 4:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败错误

尝试使用以下 docker-compose 文件设置 selenium 4 网格,但出现“无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败”错误,需要一些帮助来解决相同的问题.

码头工人撰写文件:

运行命令:

这将通过 testing.xml 文件中提到的测试运行器触发一个黄瓜测试场景的执行。

看起来设置已经完成了,这里的日志:

在运行一项测试时完成错误日志:

或者,当我尝试打开集线器 url 时,我得到以下信息: 在此处输入图像描述

这就是调用远程驱动程序对象的方式。

笔记本电脑配置:Mac m1 512GB

我怎么可能摆脱这个问题?

0 投票
0 回答
41 浏览

java - 如何在 Selenium 4 中为所有浏览器制作全页截图?

有没有办法 使用 Selenium 4截取整页截图(使用 base 64 转换) ?适用于所有浏览器(Chrome、FF、Edge)

我尝试过使用Ashot,但正在寻找替代方法来避免出现问题。

0 投票
0 回答
216 浏览

java - selenium 4 evolution 是否适用于 chrome 95?

当我执行此代码时:

Chrome不要更改位置:selenium4,chrome 95

控制台中的消息:

警告:无法找到 CDP 版本 95 的完全匹配,因此返回找到的最接近的版本:91 oct。2021 年 2 月 28 日下午 4:13:19 org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch 信息:找到 91 的第 95 版的 CDP 实现