【问题标题】:IE cannot work with C# Selenium script, while Firefox works wellIE 无法使用 C# Selenium 脚本,而 Firefox 运行良好
【发布时间】:2012-04-29 14:08:25
【问题描述】:

脚本:

IWebDriver ie = new InternetExplorerDriver();
IWebDriver ff = new FirefoxDriver();
string baseURL = "http://xxxxxxxxxxxx";
ISelenium iesele = new WebDriverBackedSelenium(ie, baseURL);
ISelenium ffsele = new WebDriverBackedSelenium(ff, baseURL);

baseURL的页面有2个框架,上面的框架是一个警告页面,我想选择“同意”然后点击“确定”关闭它。 IE的脚本不起作用,可以发现复选框和按钮的对象,但是“选择”和“单击”不起作用。但在火狐下,它可以工作,上框关闭成功。 脚本: 浏览器

iesele.Start();
iesele.Open(baseURL);
iesele.SelectFrame("UpperFrame");
iesele.FindElement(By.Name("agree")).Click();
iesele.FindElement(By.CssSelector("ok")).Click();

火狐

ffsele.Start();
ffsele.Open(baseURL);
ffsele.SelectFrame("UpperFrame");
ffsele.FindElement(By.Name("agree")).Click();
ffsele.FindElement(By.CssSelector("ok")).Click();

有谁知道为什么 IE 不能正确执行这个脚本? 我应该设置一些 IE8 吗?

谢谢

【问题讨论】:

    标签: c# internet-explorer firefox selenium webdriver


    【解决方案1】:

    嗯,我已经搜索过您的问题;也许您也有与此 stackoverflow 问题相同的问题:

    Selenium 2.0b3 IE WebDriver, Click not firing

    在实际的 click() 注册到您的元素上之前,给定的框架似乎需要获得焦点(通过 click())。

    【讨论】:

      【解决方案2】:

      每个浏览器呈现页面的方式不同,Selenium 驱动程序也不同(因此不同的浏览器可能无法使用完全相同的脚本)。

      您可能会发现this answer 对类似问题很有用。特别是,尝试选择并单击目标元素的父元素(例如<div>)而不是元素本身。另外,请尝试使用MouseDown(),后跟MouseUp(),而不是Click()

      【讨论】:

      • 不知道是不是页面的问题,只有 Click/Select/Check 方法有效。使用 Mouse/Key 相关的方法/功能会报错:
      • 错误:当前位置没有可用的源代码。当我尝试在复选框(html 源代码中的 Javascript)上鼠标按下时,发生了此错误。仅在 IE8 上,Firefox 没有。
      【解决方案3】:

      我曾多次发现 Firefox 可以查找元素并与之交互,但 IE 会在不同的地方失败。大多数情况下,我输入“等待元素”,IE 问题就解决了。我认为 IE 有时创建元素的速度会慢一些(或者以不同的顺序做事?)所以有时当您打算单击它时该元素不存在。 这可能不是你的问题,但它似乎经常发生在我身上!

      编辑:我也使用 Chrome,当 IE 失败时,FF 和 Chrome 经常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        • 2012-09-06
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多