首页 > 解决方案 > 为什么我不能在 powershell 中使用 selenium 实例化 chromeoptions 对象?

问题描述

我正在尝试在 Windows 10 机器上使用 Powershell v5.1 来使用 Selenium chromedriver 自动执行 chrome 任务,并且在导入所有相关 dll 后,我无法在 PS 中创建 ChromeOptions 对象。我发现的每个来源都说正确的对象实例化是这样完成的:

ChromeOptions options = new Chromeoptions();

但这会导致此错误:

At line:1 char:43
+ chromeoptions options = new chromeoptions();
+                                           ~
An expression was expected after '('.
     + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
     + FullyQualifiedErrorId : ExpectedExpression

这是在我导入这些之后:

add-type -path "D:\\selenium\selenium.webdriverbackedselenium.dll"
add-type -path "D:\\selenium\thoughtworks.selenium.core.dll"
add-type -path "D:\\selenium\webdriver.support.dll"
add-type -path "D:\\selenium\webdriver.support.dll"

我是否缺少实例化 chromeoptions 对象所需的任何 dll?我可以用 chromedriver 很好地打开 chrome 并正常导航,但我需要在它打开之前配置一些东西,否则它对我来说基本上没用。感谢您的任何帮助!

标签: powershellgoogle-chromeseleniumwebdriverselenium-chromedriver

解决方案


我今天真的开始玩 Selenium,因为我想尝试抓取动态加载的数据(javascript)。反正

您正在复制 C# 代码并期望它能够工作。您需要将其转换为 PS 代码(或在 PS 中运行为 C# 代码)

ChromeOptions options = new Chromeoptions();

变成

$chromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions

$chromeOptions 现在具有您可以访问的方法和属性,例如 AddArgument。

创建 ChromeOptions 对象后,您需要将其添加到驱动程序中。

$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeOptions)

推荐阅读