嗨,当我们必须在selenium webdriver(java)中使用javascriptexecutor更改标签属性值时,我们就像使用belwo一样:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('//id of element').setAttribute('attr', '10')");
和elements属性已更改。
同时在自动化网站时,我必须单击一个按钮,我使用了普通的webdriver
driver.findElement(By.xpath("//*[data-dismiss='modal']").click();
单击它但总是在线程" main"中得到异常org.openqa.selenium.ElementNotVisibleException:元素不可见。该按钮的html源是
<button class="indigo-submit btnStyle clsmdl" data-dismiss="modal" aria-hidden="true">Close</button>
我也注意到如果我在按钮上使用硒的动作我没有例外,但即使没有点击按钮,即我的脚本传递没有异常,但也没有点击。经过大量搜索我发现了什么
<body style="overflow: hidden;">
...
...
< <button class="indigo-submit btnStyle clsmdl" data-dismiss="modal" aria-hidden="true">Close</button>
...
...
</body>
body标签的Style属性是&#34;溢出:隐藏&#34;根据{{3}}链接有些用户说Selenium无法点击父节点下溢出的web元素:hidden.Also我已尝试过链接中提供的建议但没有运气,可能是我无法正确地将python代码转换为java。
1.Now Please help me how can i use javascriptexceutor to change the body style tag to
visible.
2.Please help me how can i use javascriptexceutor to change the button aria-hidden tag to
false. Also i want a way to verify the same.
答案 0 :(得分:1)
@raj N ish Ku M ar,我在这里给出答案,我关闭你的机器弹出如下:
答案 1 :(得分:0)
我也不确定我是否可以正确地将Python
转换为Java
:)请尝试以下操作:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementsByClassName('indigo-submit btnStyle clsmdl')[0].aria-hidden='false'");
如果您想更改元素样式,请使用JavaScript
,如下所示:
document.getElementsByClassName('indigo-submit btnStyle clsmdl')[0].style.visibility="visible";