我是全新的硒,似乎是在第一个障碍下降。虽然我可以在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#。
我在Windows 8.1上使用IE 11。我可以通过这样做来解决这个问题:
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,它正在为我工作 – Saifur 2015-02-24 13:55:32
如果您改为调用'_iedriver.Close()',你还会看到这个问题吗? – 2015-02-24 13:55:46
是的,我在@RichardEverett。我试过使用关闭,退出和处置全部无效 – 2015-02-24 14:16:56