点击命令的webdriver不起作用
我最近刚做的我硒IDE代码硒网络驱动器出口。我发现很多在IDE中工作的命令无法工作,或者硒驱动程序声称根本不支持。到目前为止,我已经解决在同一时间小于理想的这些问题的一个...点击命令的webdriver不起作用
目前我正在努力找出为什么点击一个按钮,而它在以前工作不与卷筒纸驱动器工作硒IDE。我的浏览器是FF 13,我的操作系统是Ubuntu。
代码段
WebElement loginButton = driver.findElement(By.name("submit"));
loginButton.click();
我以前试过
driver.findElement(By.name("submit")).click();
但上述行也失败了。元素正在被选中,但它不会按我的意愿登录。我发现其他页面有类似的问题,但他们的问题似乎与Internet Explorer不是Firefox。我甚至不想考虑IE会给我带来的问题。
谢谢,
P.S. 在不丢失我写的所有测试的情况下,从selenium IDE迁移到Selenium Webdriver的更好方法的提示也可以解决此问题。
如果你肯定知道的元素存在,你可以试试这个模拟点击 - 如果.Click()
不工作
driver.findElement(By.name("submit")).sendKeys(Keys.Return);
或
driver.findElement(By.name("submit")).sendKeys(Keys.Enter);
是不是Keys.Enter? – 2012-07-27 13:41:35
@PavelJanicek任何一个将做的伎俩,但编辑显示两者;) – TheLifeOfSteve 2012-07-27 14:02:10
哇。我不知道这个。 Upvote教我新东西:) – 2012-07-27 14:13:29
有什么不对任一版本的代码。无论是什么原因造成的,都不是这样。
你三倍检查你的定位器?你的元素肯定有name = submit not id = submit?
感谢所有的答案大家!我找到了一个解决方案,结果我没有在我的问题中提供足够的代码。
问题是不是毕竟与click()函数有关,而是与用于我的项目的cas认证相关。在Selenium IDE中,我的登录测试对以下位置执行了一个“打开”命令,
/cas/login?service=https%1F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security
工作正常。我将测试导出到自然保存该位置的Selenium webdriver。在硒的webdriver的命令是,
driver.get(baseUrl + "/cas/login?service=https%1A%2F%8FAPPNAME%2FMOREURL%2Fj_spring_cas_security");
至于原因,我还没弄清楚失败上面。当我把它改成,
driver.get(baseUrl + "MOREURL/");
的点击命令突然开始工作......我将编辑这个答案,如果我能弄清楚到底为什么这是。
注:我挡住上面使用,以保护我公司产品的URL。
你说它在IE浏览器上没有在Firefox上失败。你确定这种情况只是由位置引起的吗? – 2014-01-26 03:46:51
请编辑原始问题,而不是发布更新作为答案。 – 2017-03-27 07:08:07
我正在使用firefox和一些原因,它没有采取点击命令,虽然从过去2months它工作。 我的感觉是利用sendKeys和这个网页解决了这个问题。现在,我使用的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')]"));
你尝试'断言loginButton.isDisplayed()(在我的环境对一个按钮!); '?当你说click()操作失败时 – 2012-07-26 21:28:33
?你是否有任何错误或exceptions.Please张贴他们理解为什么click()操作失败。 – 2012-07-26 23:46:50