脚本:
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的脚本不起作用,可以发现复选框和按钮的对象,但“选择”和“单击”不起作用。但是在Firefox下,它可以工作,上层框架已成功关闭。 脚本: 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吗?
感谢
答案 0 :(得分:0)
嗯,我已经四处寻找你的问题;也许你也有与这个stackoverflow问题相同的问题:
Selenium 2.0b3 IE WebDriver, Click not firing
在你的元素上注册了实际的click()之前,似乎给定的框架需要有焦点(通过click())。
答案 1 :(得分:0)
每个浏览器呈现页面的方式和Selenium驱动程序的差异(因此可能无法为不同的浏览器使用完全相同的脚本)存在差异。
您可能会发现this answer对类似的问题很有用。特别是,尝试选择并单击目标元素的父元素(例如<div>
)而不是元素本身。此外,请尝试使用MouseDown()
,然后使用MouseUp()
代替Click()
。
答案 2 :(得分:0)
我发现Firefox有几次会找到并与元素进行交互,但IE会在各个位置失败。大多数时候我都会投入“等待元素”并解决IE问题。我认为IE创建元素有时会慢一点(或者以不同的顺序做事情?)所以当你想要点击它时,元素有时不存在。 这可能不是你的问题,但似乎经常发生在我身上!
编辑:我也使用Chrome,当IE失败时,常常使用FF和Chrome。