标签: selenium4

WebDriverWait 在 Selenium 4 中被弃用

我得到一个

警告:(143,13) 'WebDriverWait(org.openqa.selenium.WebDriver, long)' 已弃用

在硒 4.0.0-alpha-3 中。

但官方Selenium 页面仅列出

WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds, long sleepTimeOut)
Run Code Online (Sandbox Code Playgroud)

已弃用。

怎么了?我正在使用 IntelliJ,这可能是他们的问题吗?

java selenium selenium-webdriver webdriverwait selenium4

3
推荐指数
4
解决办法
1万
查看次数

关闭 Selenium 4 中网络驱动程序的浏览器日志记录

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

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

         +-------------------------------------------------+
         |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
+--------+-------------------------------------------------+----------------+
|00000000| 44 45 4c 45 54 41 20 2f 73 65 73 73 69 6f 6c 2f |DELETE /session/|
|00000010| 30 35 62 37 66 36 35 30 61 64 39 33 66 38 37 37 |05b234567d93f877|
|00000020| 65 65 39 31 …
Run Code Online (Sandbox Code Playgroud)

java selenium-webdriver selenium-edgedriver selenium4

2
推荐指数
1
解决办法
2405
查看次数

使用 PowerShell 和 Selenium 4 等待元素

我正在更新一些以前与 Selenium 3.141 一起使用的 PowerShell 代码。我有以下代码片段:

Add-Type -LiteralPath "$seleniumPath\lib\net48\WebDriver.dll"
Add-Type -LiteralPath "$seleniumPath\lib\net48\WebDriver.Support.dll"
$url = "https://<webpage.com>"
$options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
$options.AddArgument("--disable-gpu")
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($options)
[OpenQA.Selenium.Support.UI.WebDriverWait]$wait = New-Object OpenQA.Selenium.Support.UI.WebDriverWait ($driver, [System.TimeSpan]::FromSeconds(60))

$driver.Navigate().GoToURL($url)
$driver.FindElementById("username")
$wait.Until([OpenQA.Selenium.Support.UI.ExpectedConditions]::ElementExists([OpenQA.Selenium.By]::Id('username')))
Run Code Online (Sandbox Code Playgroud)

在 Selenium 4.0 中,FindElementById 不再起作用:

无法找到类型 [OpenQA.Selenium.Support.UI.ExpectedConditions]。

据我所知,OpenQA.Selenium.Support.UI.ExpectedConditions 存在于 WebDriver.Support 中,对吧?

寻找替代品,我发现了 SeleniumExtras.WaitHelpers,但这可能只适用于 .netstandard2.1?

powershell selenium4

2
推荐指数
1
解决办法
3088
查看次数

使用 PowerShell 和 Selenium 4 查找元素

我正在更新一些以前与 Selenium 3.141 一起使用的 PowerShell 代码。我有以下代码片段:

$url = "https://<webpage.com>"
$options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
$options.AddArgument("--disable-gpu")
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($options)
$driver.Navigate().GoToURL($url)
$driver.FindElementById("username")
Run Code Online (Sandbox Code Playgroud)

在 Selenium 4.0 中,FindElementById 不再起作用:

方法调用失败,因为 [OpenQA.Selenium.Chrome.ChromeDriver] 不包含名为“FindElementById”的方法

看看https://www.lambdatest.com/blog/what-is-deprecated-in-selenium4/,我发现这应该可以工作(在Java中):

driver.findElement(By.id("username"))
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将其转换为 PowerShell($driver.FindElement(By.id("username")) 不起作用)。

知道如何使用 PowerShell 和 Selenium 4 通过 ID(或类、xpath 等)查找元素吗?

powershell selenium selenium4 powershell-5.1

1
推荐指数
1
解决办法
5426
查看次数