我正在开发selenium,在运行Java代码时,我试图从网页上访问一个文本框,但是selenium。ElementNotVisibleException:元素当前不可见,因此可能不会与命令持续时间或超时错误交互。
文本字段的代码:
<input type="text" name="TotalTaxPercent" id="TotalTaxPercent" value="19.00" class="smallinputField rightAlign" size="7" onblur="javascript:validateDecimal(this, 5)">
访问文本字段的JAVA代码:
public void setItemTaxValue( String value){
//By writableTag = By.name("TotalTaxPercent");
By writableTag = By.xpath("//a[contains(@title,'Override total tax percent')]");
this.sleep(3);
if (this.waitForExistence(writableTag,35)) {
this.textfieldSetText(writableTag, value);
clickOnOK ();
//
} else{
JLog.fail("Unable to find a writable item taxdialog!");
}
}
错误树 :
[2015-07-14 20:18:34 PDT] Switch to Frame: <top>
[2015-07-14 20:19:22 PDT] Setting TextField (By.name: TotalTaxPercent) with data: 10
[2015-07-14 20:19:24 PDT] Screen Capture: C:\source\selenium-main\selenium-vodafone\target\capture\screenCapture_20150714201922308.jpg
[2015-07-14 20:19:24 PDT] FAIL: org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Command duration or timeout: 40 milliseconds
敬请指教,谢谢
只需捕获异常:
try {
this.textfieldSetText(writableTag, value);
} catch (ElementNotVisibleException e) {
JLog.fail("Unable to find a writable item taxdialog!");
}
可能使用JavaScript执行整个操作,因为它是一个隐藏字段
String script = "document.getElementById('TotalTaxPercent').setAttribute('value','20.00');";
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(script);
如果J奎里是一个选项,那么请尝试
String script = "$('#TotalTaxPercent').prop('value', 20.00);";
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(script);
我初始化了一些元素,但不是我的锚窗格: 但是当我尝试单击MenuBar或List View时,它不起作用。例如,在这种情况下,我可以单击按钮(可能),因为它是我在AnchorPane构造函数中初始化的最后一个元素。我不能使用BorderPane或任何其他布局,因此我需要找到具有此配置的解决方案。这些是我的fxml文件: list.fxml 菜单栏。fxml rea.fxml 按钮fxml text
问题内容: HTML中是否有任何方法告诉浏览器不允许对特定元素进行标签索引? 在我的页面上,尽管有一个用jQuery呈现的杂耍,但是当您通过Tab进行制表时,您会在按下Tab控件移动到页面上的下一个可见链接之前获得大量的制表符按下,因为所有通过制表的内容都被隐藏了。视觉上的用户。 问题答案: 您可以使用。 W3C HTML5规范支持负的值: 如果值为负整数 ,则用户代理必须设置元素的tabinde
我正在使用selenium测试脚本。我得到以下错误和这个错误随机发生。当我跑10次时,我会得到大约两次。所以它不是真的可复制的。有人知道为什么会这样吗?我试图单击的元素在浏览器中绝对可见,并且不会四处移动,因此不需要调整大小或拖动元素。我正在使用chrome webdriver,我阅读了其他故障排除策略(调试“Element is not clickable at point”错误),它们似乎与我
我想单击以下按钮,定位符: css 和Xpath 我还使用命令:webdriver-manager update 更新了chrome驱动程序,然后,我有:version chromedriver_79.0.3945.36 geckodriver version v0.26.0 Chome version 79.0.3945.88 当我运行量角器时,我得到了错误: 失败:元素点击拦截:元素...在点
问题内容: 这是一段UI代码 当标签被嵌套在里面的标签。我需要在下拉列表中的第二个元素上。当我尝试使用id / uniqueattr 在标签上时,可单击下拉列表。 如何遍历嵌套在下面的标签并单击正确的项目? 问题答案: 这将在ID为“ order_unit_line_rate_806782_is_addenda_enabled”的选择中选择值为“ 1”的选项。 您也可以按索引或文本进行选择;请参阅
问题内容: 这个问题是由于总的中间在试图忠实于什么实际用户一样。所以我在想这种方法: 首先,而不是查找元素,然后单击: 编写单击以下内容的通用函数: 然后,当发生此异常时,请尝试以其他方式单击。 您认为这种方法可行吗? 问题答案: 请仔细阅读此堆栈溢出答案以更好地理解。 更新 我们也可以尝试 也请尝试如下 尝试使用Y坐标单击 尝试使用X坐标单击 希望这对您有帮助