我是全新的硒,似乎是在第一個障礙下降。雖然我可以在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