我用Selenium和C#编写了一个多线程自动化,它使用了很多Chrome浏览器(可以重复)。
我尝试使用所有内容,包括“--ingnito”、“--disable-apps ation-cache”,在打开另一个浏览器、驱动程序之前等待一秒钟。关闭()
、。退出()
和。Dispose()
。这是代码示例:
IWebDriver[] drivers = new IWebDriver[AUTOMATION_NUM];
int QUEUE_BROWSERS_TO_OPEN = 0;
Thread mainThread = new Thread(() =>
{
for (int i = 0; i < AUTOMATION_NUM && !EXIT; i++)
{
...
Thread driverThread = new Thread(() => {
...
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("--incognito", "--disable-application-cache"); // headless or non-headless
IWebDriver driver = drivers[instance];
driver = new ChromeDriver(chromeService, chromeOptions, TIMEOUT_FROM);
...
++QUEUE_BROWSERS_TO_OPEN;
...
driver.Close();
driver.Quit();
driver.Dispose();
});
_machineThreads.Add(driverThread);
driverThread.IsBackground = true;
driverThread.Start();
while (i < AUTOMATION_NUM && !EXIT)
{
Thread.Sleep(5000);
if (QUEUE_BROWSERS_TO_OPEN > 0 && BROWSERS_OPEN < BROWSER_NUM)
--QUEUE_BROWSERS_TO_OPEN;
}
}
Thread endThread = new Thread(() =>
{
foreach (Thread machineThread in _machineThreads)
machineThread.Join();
...
});
endThread.Start();
});
mainThread.Start();
并建议我的客户通过单击按钮执行此代码来杀死所有“chromedriver.exe”进程:
Process[] chromeDriverProcesses = Process.GetProcessesByName("chromedriver");
foreach (var chromeDriverProcess in chromeDriverProcesses)
chromeDriverProcess.Kill();
但是我的客户仍然在说关闭和完成的自动化浏览器的记忆仍然存在?
有什么可行的解决方案吗?在再次使用自动化之前,如何防止客户的高端PC重新启动以释放Chrome内存或被冻结?还有其他选择吗?
有一个命令可以杀死所有打开的浏览器窗口(chrome.exe)和与该浏览器窗口相关的chrome驱动程序进程(chromedriver.exe)
杀死chrome驱动程序进程
string strCmdText;
strCmdText= "TASKKILL /f /IM CHROMEDRIVER.EXE";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
终止chrome浏览器窗口
string strCmdText;
strCmdText= "TASKKILL /f /IM CHROME.EXE";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
有关更多信息,请参阅this和this
希望这有助于...
我有一些使用JUnit和Selenium的测试,我需要在Chrome浏览器上运行它。我下载了Chrome驱动程序,并将我的SetUp()配置为: ChromeDriver.exe添加在我的引用库文件夹中。 当我运行测试时,会显示以下错误:java.lang.exception:没有可运行的方法 有人知道我该怎么解决吗? 解决方案 2更新您的setProperty为:第二个参数必须是您的C在哪里hr
我在Ubuntu Server中设置了一个Selenium Grid,在Ubuntu Desktop中设置了一个Hub,在Ubuntu Desktop中设置了一个Node。Node上的GoogleChrome版本是。我创建会话的python代码是 但是当我传递时,它会出错 硒。常见的例外情况。WebDriverException:消息:转发新会话时出错,找不到:功能{browserName:chr
问题内容: 我想自动化Web应用程序的本地化功能。当浏览器语言更改时,根据我的应用程序,应用程序语言应根据浏览器语言自动更改。怎么做? 问题答案: 如下所示启动驱动程序之前,请在chrome选项中设置语言代码。 对于语言代码:https : //en.wikipedia.org/wiki/List_of_ISO_639-1_codes
我的chrome浏览器在Selenium Webdriver中没有打开。根据兼容性,我已经下载了所有的东西,如chrome driver,Selenium jars和chrome。我使用的是Intellij IDEA IDE。代码和版本细节如下- 版本: Chrome:89.0.4389.90 IDE:IntelliJ IDE:203.7148.57 Chrome驱动程序:https://chro
通常情况下,您使用selenium来自动化测试用例,在测试用例运行完毕后,浏览器关闭。 然而,我尝试使用selenium webdriver编写特定任务的脚本,例如登录到特定页面,但浏览器在登录后应保持打开状态。 我开发了门户,这样,如果我早上开始工作,我就不必登录所有的后端,我只需要登录一次我的门户,从那里我就可以触发我需要的一切。 我这样做是为了登录到typo3后端(片段): 您可以看到,我在
我正在为Facebook编写一个代码,它从属性文件中获取URL、ID、密码,但在登录时,我会被提示“Facebook想要显示通知-允许-阻止”,在登录后我该如何使其如此(a)按ESP或Alt+F4并关闭弹出窗口或(B)查找通知并自行关闭通知。这是我使用的,但它不起作用。感谢任何帮助。