我有一个硒测试,应该下载一个文件,并检查它是否包含一些东西。在火狐和Chrome测试运行正常,但在IE 11我得到一个例外。
IE驱动程序:IEDriverServer版本2.41.0.0
代码:
<code>
var driver = new InternetExplorerDriver();
//....navigate and login to a page
var el = driver.FindElements(By.PartialLinkText("Download File"))
.First(p => p.GetAttribute("href").Contains("/downloadmyfile"));
var link = el.GetAttribute("href");
var client = new WebClient();
client.Headers[HttpRequestHeader.Cookie] = CookieString();
var data = client.DownloadString(new Uri(link));
</code>
复制Cookie的代码:
<code>
public string CookieString()
{
var cookies = driver.Manage().Cookies.AllCookies;
return string.Join("; ", cookies.Select(c => string.Format("{0}={1}", c.Name, c.Value)));
}
</code>
例外情况:
司机。管理()。饼干。Firefox驱动程序的所有Cookie外观:
ASP.NET_SessionId=sesionId222222; .authcookie=xxxxxxxx; __utma=1.559549671.1404381398.1404381398.1404381398.1; __utmb=1.1.10.1404381398; __utmc=1; __utmz=1.1404381398.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); testingSite=culture=en
司机。管理()。饼干。IE驱动程序的所有Cookie外观:
__utma=1.342629986.1404310901.1404378456.1404381205.3; __utmb=1.2.10.1404381205; __utmc=1; __utmz=1.1404310901.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); testingSite=culture=en
对于相同的网页,IE浏览器的浏览器cookie具有sesionId和. autekie。
有人知道IE driver会出什么问题吗?
我看到IE驱动程序不包含_SessionId的cookie值和. Authcookie有一种方法可以为IE驱动程序获取丢失的cookie吗?
>
InnerException堆栈跟踪:
在系统中。网插座。网络流。在系统上读取(字节[]缓冲区、Int32偏移量、Int32大小)。网固定尺寸阅读器。系统上的ReadPacket(字节[]缓冲区、Int32偏移量、Int32计数)。网安全_SSL流。系统上的StartFrameHeader(字节[]缓冲区、Int32偏移量、Int32
计数、AsyncProtocolRequest asyncRequest)。网安全_SSL流。在系统上启动(字节[]缓冲区、Int32偏移量、Int32
计数、AsyncProtocolRequest asyncRequest)。网安全_SSL流。系统上的ProcessRead(字节[]缓冲区、Int32偏移量、Int32计数、AsyncProtocolRequest asyncRequest)。网TlsStream。在系统上读取(字节[]缓冲区、Int32偏移量、Int32大小)。网池流。在系统上读取(字节[]缓冲区、Int32偏移量、Int32大小)。网联系SyncRead(HttpWebRequest请求、布尔userRetrievedStream、布尔probeRead)
-at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at MyClasss........
这是因为IE不返回HttpOnly cookies。ASP。NET SessionID是一个仅HttpOnly的cookie。
我们没有找到解决方案,所以我们转而使用注入页面的JavaScript AJAX请求来执行下载。我们还将结果以编码字符串的形式返回给Selenium,因此我们不会向HDD发送已下载文件的垃圾邮件。
问题内容: OK,所以我正在尝试使用Selenium导出文件。我的浏览器是IE。当我 单击导出按钮时,将出现一个本机Windows对话框。 弹出的图片 在此处输入图片说明 我必须单击“保存”按钮。为此,我尝试使用AutoIT但 不起作用。 这没有用。因此,我决定使用Robot类并执行键盘单击Atl + S,因为这还将使浏览器能够保存文件。那 也不起作用。 我认为Web驱动程序存在一些问题,因为我尝
我已经使用了下面的代码,将鼠标移到选项卡上,然后选择表中的菜单。鼠标悬停在Firefox上运行良好,但在Chrome和Internet Explorer上不起作用。在选择菜单之前,我们已经选择了iframe。请建议在IE WebDriver中处理鼠标悬停的替代方法我使用了鼠标悬停的操作方法。
问题内容: 我正在尝试使用Selenium WebDriver获取文本,这是我的代码。请注意,我不想使用XPath,因为在我的情况下,每次重新启动网页时ID都会更改。 我的代码: HTML: 我怎样才能解决这个问题? 问题答案: 你只想。 然后,您可以在验证 后 进行验证,不要尝试传递您 期望的 内容。
我试图使用Selenium WebDriver获取文本,这是我的代码。请注意,我不想使用XPath,因为在我的情况下,每次重新启动网页时都会更改ID。 我的代码: HTML: 我怎样才能解决这个问题?
问题内容: 当我单击页面上的按钮(在IE浏览器中)时,将打开一个新的弹出页面。我尝试获取此弹出窗口的窗口句柄失败。这是我的第一次尝试: 此尝试仅打印基本窗口的句柄,并且如果第二个print语句放置在if()语句之外,但在while()语句内以及if()语句之后,则仅输出基本窗口的标题。因此,这组句柄似乎只包含基本窗口句柄。 这是我的第二次尝试: 尝试返回一个错误,该错误表明数组popUpWin为空
有人能帮忙吗 下面是错误,谢谢你的及时回复。 失败:testGooglePageTitleInIEBrowser java.lang.NullPointerException在IEProjects.TesteBrowser.testGooglePageTitleInIEBrowser(TesteBrowser.java:32)在Sun.Reflect.NativeMethodAccessorImp