无法在无扩展模式下启动Chromedriver

时间:2017-10-03 05:33:52

标签: c# selenium

我刚刚开始使用Selenium和Chromedriver,如果没有Selenium的Chrome自动化扩展程序,我无法弄清楚如何启动它。这是必需的,因为由于公司政策,Chrome无法处理解压缩的扩展程序,而我的测试应用程序因此而给我一个例外。

我正在尝试

ChromeOptions options = new ChromeOptions();
options.AddArguments("disable-extensions");
IWebDriver driver = new ChromeDriver(options);

然而它失败了,因为我已经阅读了整个代码不能在

之下
public partial class Form1 : Form

我必须把它的一部分放在一个方法中。我可以这样做,但如果我把

IWebDriver driver = new ChromeDriver(options);

在不直接在我的Form1类中的任何地方,然后我在各种点击事件下的引用无法看到我在那里定义的'driver'对象。

我搜索了很多,但无法弄清楚如何构造代码,以便它可以正确读取选项参数,并以其他引用可以找到的方式创建驱动程序对象。我非常感谢完整的例子,因为其他相关主题没有为我解答。

谢谢

更新:

问题是我无法编译代码,这完全是由于需要使用参数启动ChromeDriver。没有参数它都可以工作,但遗憾的是我需要它,但是我迷失了如何以一种不直接在类中创建对象的方式构造代码,而单击事件可以引用它。

-

如果我尝试在Form1类下创建对象,我无法将参数传递给它,没有它完美的那些。我已经读过它,如果我想向ChromeDriver添加参数,就不能简单地在类下声明它。

例如,如果我在Form1_Load事件下输入,它可以理解参数并使用这些参数打开浏览器窗口,但是我的各种按钮的点击事件无法看到我在Form1_load下创建的ChromeDriver驱动程序,我得到“xxx在当前的背景下不存在“。

还尝试将其全部放在

public ChromeDriver mymethod()

方法,有

返回司机;

因为它是返回值。在这种情况下,我可以在我的按钮单击事件中调用该方法,但由于新的ChromeBrowser obkect是在该方法中定义的,因此每次单击按钮执行某些操作时,它会创建新的浏览器窗口,因为创建对象的代码运行再次。试图在方法中放入一个IF,但它失败了,因为我不能

return driver;
ELSE链上的

也没有在该链中创建新的ChromeBrowser对象,这导致又打开了一个窗口。

如果有任何兴趣,我可以提供要查看的代码。

0 个答案:

没有答案