如何解决Selenium Web驱动程序无法找到元素
我正在使用Selenium网络驱动程序单击一个由ID标识为objdbColumnVO[6].columnValue
的文本框。重放时,硒无法在网页上找到该元素。
HTML:
<input type="text" name="objdbColumnVO[6].columnValue" onkeydown="return noenter(event);" id="objdbColumnVO[6].columnValue" class="form-control" value="" title="" aria-invalid="false">
我尝试了以下所有选项,但没有运气。
//var textbox=WDS.browser.findElement(pkg.By.id("objdbColumnVO[6].columnValue"));
WDS.browser.findElement(pkg.By.id("objdbColumnVO[6].columnValue")).click();
//var EnterPolicy = WDS.browser.findElement(org.openqa.selenium.By.name("objdbColumnVO[6].columnValue"));
//EnterPolicy.click();
//WDS.browser.findElement(pkg.By.className("col-md-6 col-lg-6 col-sm-6 col-xs-5 caselog-custom-text")).click();
var element = WDS.browser.findElement(pkg.By.className("col-md-6.col-lg-6.col-sm-6.col-xs-5.caselog-custom-text"));
element.click();
解决方法
要单击元素,可以使用以下Locator Strategies之一:
-
xpath :
WDS.browser.findElement(pkg.By.xpath("//input[@class='form-control' and contains(@onkeydown,'noenter')][starts-with(@name,'objdbColumnVO') and contains(@id,'6')]")).click();
-
cssSelector :
WDS.browser.findElement(pkg.By.cssSelector("input.form-control[onkeydown*='noenter'][name^='objdbColumnVO'][id*='6']")).click();
如果可以的话,您可以尝试一下吗
WebElement element =driver.findElement(By.name("objdbColumnVO[6].columnValue"));
((JavascriptExecutor) driver).executeScript("arguments[0].click();",element);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。