我最近刚做的我硒IDE代码硒网络驱动器出口。 我发现了很多的命令,在IDE工作要么无法正常工作或硒网络驱动声称根本不支持。 到目前为止,我已经解决在同一时间小于理想的这些问题的一个...
目前,我正在努力找出为什么点击一个按钮,而它在硒IDE曾任职不适用于网络驱动程序。 我的浏览器是FF 13,我的操作系统是Ubuntu Linux系统。
代码段
WebElement loginButton = driver.findElement(By.name("submit"));
loginButton.click();
我以前曾尝试过
driver.findElement(By.name("submit")).click();
然而上面的行也失败了。 该元件得到选择,但它不记录我们,我想。 我发现有类似问题的其他页面,但他们的问题似乎是与Internet Explorer没有Firefox浏览器。 我甚至不想去想问题IE就会给我的道路。
谢谢,
PS上有更好的方式从硒IDE到硒webdriver的迁移,而不会失去所有我写能解决这个问题,也是测试小费。
如果你肯定知道的元素存在,你可以试试这个模拟点击-如果.Click()
不工作
driver.findElement(By.name("submit")).sendKeys(Keys.RETURN);
要么
driver.findElement(By.name("submit")).sendKeys(Keys.ENTER);
需要注意的一个重要的事情是一个按钮是否已启用。 您还可以点击他们,什么都不会翻倒的元素是有,但还没有准备好被点击就这么只是不执行任何操作。
我一直在使用的webdriver及其带我最多的一天算出这个!
下面的方法似乎可靠地工作(在我的环境对一个按钮!)
private void TryClick(By selector)
{
var wait = WaitUpTo(TimeSpan.FromSeconds(10));
var element = wait.Until(ExpectedConditions.ElementIsVisible((selector)));
//really important bit!
WaitUpTo(TimeSpan.FromSeconds(5))
.Until(d => element.Enabled);
element.Click();
}
你使用它像
TryClick(By.XPath("//button[contains(.//*,'Some Text')]"));
感谢所有的答案大家! 我已经找到了解决办法,原来我没有在我的问题提供足够的代码。
问题是不与后所有的点击()函数,而是关系到我的项目中使用CAS认证。 硒IDE我登录测试执行的“打开”命令到以下位置,
/cas/login?service=https%1F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security
这工作。 我导出测试硒的webdriver这自然保留的位置。 在硒的webdriver的命令是,
driver.get(baseUrl + "/cas/login?service=https%1A%2F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security");
至于原因,我还没有明白失败上面。 当我把它改成,
driver.get(baseUrl + "MOREURL/");
点击命令突然开始工作......我将编辑这个答案,如果我能弄清楚到底为什么这是。
注:我挡住上面使用,以保护我公司产品的URL。
请参考这里https://code.google.com/p/selenium/issues/detail?id=6756在症结
请打开系统显示设置,确保字体大小设置为100%,它的工作令人惊讶
有没有错,任何一个版本的代码。 无论是导致此,这不是它。
你有三重检查您的定位? 你的元素绝对有名称=提交不是ID =提交?
我使用Firefox和某种原因,它不是从它正在过去2个月服用点击命令虽然。 我的感觉是,利用的SendKeys的这页解决了这个问题。 现在,我使用的SendKeys(Keys.Enter)