小编Dan*_*les的帖子

IE中新窗口句柄消失

这是我在此处提出的上一个问题的后续措施。

我以前在使用Selenium 2.37.0的Internet Explorer 10中切换窗口时遇到问题。我的C#程序将导航到页面,单击打开链接的按钮,然后尝试导航到新窗口以执行其他任务。我的程序不断失败,我确定这是由于Selenium的窗口句柄造成的。打开新窗口后,窗口句柄(driver.WindowHandles.Count)的数量从1增加到2,正如预期的那样,但是经过一段时间后,窗口句柄的数量又下降到1。

我创建了一个最小的示例网页来重现此问题。只需将以下代码保存到test.aspx桌面上的文件中:

<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <input id="btn" type="button" value="Link"  lang="javascript"     onclick="window.open('test.aspx')">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的C#代码(Visual Studio 2010中的控制台项目,称为TestWindowSwitching),打开此页面,单击按钮,并输出一些输出:

using System;
using System.Threading;         // Needed for Sleep
using System.Diagnostics;       // Needed for Stopwatch

using OpenQA.Selenium;
using OpenQA.Selenium.IE;

namespace TestWindowSwitching
{
    class Program
    {
        static void Main()
        {
            IWebDriver driver = new InternetExplorerDriver();

            driver.Navigate().GoToUrl("C:\\Users\\yourNameHere\\Desktop\\test.aspx");

            try { driver.SwitchTo().DefaultContent(); }
            catch { Thread.Sleep(10); }

            Console.WriteLine("Initial number of window handles: " + driver.WindowHandles.Count);

            Stopwatch …
Run Code Online (Sandbox Code Playgroud)

c# selenium internet-explorer

5
推荐指数
1
解决办法
3464
查看次数

无法弄清楚为什么 window.frames.length = 0

在有人问我为什么使用框架之前:在我的工作中,我需要测试一个使用框架的网站。我正在尝试使用 Javascript 从框架中获取一些信息,但我在让框架正常工作时遇到了麻烦。

首先,为了进行实验,我在我的计算机上创建了一个文件test.html. 它加载两个框架:左侧框架包含我编写的另一个测试页 ( test2.html),右侧框架包含一些网页。

<html>
<FRAMESET cols="20%, 80%">
    <FRAME name="leftFrame" src="test2.html">
    <FRAME name="rightFrame" src="http://www.foxnews.com/">
</FRAMESET>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的另一个测试页test2.html。它只有一个按钮,单击该按钮时,会提醒您 的长度window.frames。根据我在网上找到的信息,这应该告诉我有多少帧。问题是,结果为零。

<html>
<head>
    <script type="text/javascript">
        function doSomething() {
            alert(window.frames.length);
        }
    </script>
</head>
<body>
    <button type="button" onclick="doSomething();">
        Click me
    </button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如何在 JavaScript 中访问框架?我不认为这个问题来自于其中一个帧指向本地文件这一事实?

html javascript dom

2
推荐指数
1
解决办法
1784
查看次数

标签 统计

c# ×1

dom ×1

html ×1

internet-explorer ×1

javascript ×1

selenium ×1