Я новичок в Selenium и, кажется, падаю на первое препятствие. В то время как я могу с удовольствием закрывать окна браузера в Firefox, то же самое не работает в IE.
См. пример теста ниже, который оставляет меня с одним открытым окном 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();
}
}
}
Об аналогичной проблеме сообщается здесь для 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
? Я использую ту же настройку, за исключением Windows 7, и она работает для меня. - person Saifur   schedule 24.02.2015_iedriver.Close()
? - person Richard Ev   schedule 24.02.2015