0

脚本:

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的脚本不起作用,可以发现复选框和按钮的对象,但是“选择”和“单击”不起作用。但在火狐下,它可以工作,上框关闭成功。脚本: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 吗?

谢谢

4

3 回答 3

0

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

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

于 2012-04-18T09:20:09.120 回答
0

嗯,我已经四处寻找您的问题;也许您也有与此 stackoverflow 问题相同的问题:

Selenium 2.0b3 IE WebDriver,点击不触发

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

于 2012-04-18T07:30:36.450 回答
0

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

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

于 2012-04-19T02:31:14.617 回答