使用 PowerShell 和 Selenium 4 查找元素

Finding elements with PowerShell and 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")

对于 Selenium 4.0,FindElementById 不再有效:

Method invocation failed because [OpenQA.Selenium.Chrome.ChromeDriver] does not contain a method named 'FindElementById'

查看 https://www.lambdatest.com/blog/what-is-deprecated-in-selenium4/,我发现这应该有效(在 Java 中):

driver.findElement(By.id("username"))

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

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

指定 By 的完全限定 class 名称:

$driver.FindElement([OpenQA.Selenium.By]::Id("username"))

使用 :: 访问器是因为 Id() 方法是 By class.

的静态成员