Я совершенно новый для селена и, кажется, падаю с первого препятствия. Хотя я могу закрыть окна браузера довольно счастливо в Firefox, то же самое не работает в IE.IE 11 - webdriver.Quit() не работает
См пример испытания ниже, который оставляет меня с одним открытым окном IE каждый раз, когда он запускается:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
namespace TestingTesting123
{
[TestClass]
public class About
{
IWebDriver _ieDriver;
IWebDriver _ffDriver;
[TestInitialize]
public void Startup()
{
_ffDriver = new FirefoxDriver(); // Closes
_ieDriver = new InternetExplorerDriver(); // Doesn't
}
[TestMethod]
public void Go_to_bbc()
{
_ffDriver.Url = "http://news.bbc.co.uk";
_ieDriver.Url = "http://news.bbc.co.uk";
}
[TestCleanup]
public void Cleanup()
{
_ffDriver.Quit();
_ieDriver.Quit();
}
}
}
Там Похожая проблема сообщила here для Java - Я, кажется, есть один и тот же вопрос, но C#.
Я использую IE 11 на Windows 8.1. Я могу решить эту проблему, выполнив следующие действия:
using System.Diagnostics;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
namespace TestingTesting123Workaround
{
[TestClass]
public class About
{
IWebDriver _ieDriver;
IWebDriver _ffDriver;
int[] _startupIEProcessIds;
[TestInitialize]
public void Startup()
{
_startupIEProcessIds = Process.GetProcessesByName("iexplore")
.Select(x => x.Id).ToArray();
_ffDriver = new FirefoxDriver();
_ieDriver = new InternetExplorerDriver();
}
[TestMethod]
public void Go_to_bbc()
{
_ffDriver.Url = "http://news.bbc.co.uk";
_ieDriver.Url = "http://news.bbc.co.uk";
}
[TestCleanup]
public void Cleanup()
{
_ffDriver.Quit();
_ieDriver.Quit();
foreach (var ieDriver in Process.GetProcessesByName("IEDriverServer"))
ieDriver.Kill();
foreach (var ie in Process.GetProcessesByName("iexplore")
.Where(x => !_startupIEProcessIds.Contains(x.Id)))
ie.Kill(); // Typing that was oddly therapeutic
}
}
}
Однако это кажется очень тяжелой сдачей, а не лучшей практикой. Есть предположения?
Может ли это быть 'Windows, 8.1' проблема? Я использую то же самое настроение, кроме окна 7, и оно работает для меня – Saifur
Вы все еще видите эту проблему, если вместо этого вы вызываете '_iedriver.Close()'? –
Да, я делаю @RichardEverett. Я пробовал использовать Close, Quit и Dispose все вместе безрезультатно –