使用 PowerShell 和 Selenium 4 查找元素

Sta*_*Guy 1 powershell selenium selenium4 powershell-5.1

我正在更新一些以前与 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 等)查找元素吗?

zet*_*t42 6

指定 的完全限定类名By

$driver.FindElement([OpenQA.Selenium.By]::Id("username"))
Run Code Online (Sandbox Code Playgroud)

使用访问::器是因为该Id()方法是类的静态成员By