javascriptexecutor - 无法单击带有正文样式标记的元素作为" overflow:hidden"

时间:2016-04-29 11:11:57

标签: javascript java selenium selenium-webdriver

嗨,当我们必须在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.

2 个答案:

答案 0 :(得分:1)

@raj N ish Ku M ar,我在这里给出答案,我关闭你的机器弹出如下:

Element Not visible error

答案 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";