我有要测试的页面
<div class="activity-container">
<!--fragment#54705578f9#head-->
<div fragment="54705578f9" class="activity-action">
<span class="icon-arrow_drop_down"></span>
<span class="actions-description">
<b>Login</b>
</span>
<span>Date: 28/02/2019</span>
<span>Time: 12:20</span></div>
<div class="activity-description" fragment="54705578f9" style="display: none;">
<span></span>
<span class="actions-no-info">No additional information</span>
</div>
<!--fragment#54705578f9#tail-->
<!--fragment#26552421c5#head--></div>
当我尝试使用网络驱动程序单击//*[@class="activity-action"][1]
时,出现“元素不可见异常”。
下一步,检查为什么硒元素不可见:
document.getElementsByClassName('activity-action')[0].getBoundingClientRect()
响应:
DOMRect {x: 359.3125, y: 343, width: 900, height: 59, top: 343, …}
元素可见,现在检查父级:
document.getElementsByClassName('activity-action')[0].parentNode.getBoundingClientRect()
并获得DOMRect {x: 0, y: 0, width: 0, height: 0, top: 0, …}
父元素不可见,因此子元素也不可见。但是父元素有点奇怪:
document.getElementsByClassName('activity-action')[0].parentNode
返回:<div fragment="54705578f9"></div>
,但我不知道该怎么做。我在Chrome检查器中看不到此元素。这是什么?
document.getElementsByClassName('activity-action')[0].parentNode.parentNode
返回<div class="activity-container">...</div>
该元素必须在上一步中返回。
我可以通过使用JavascriptExecutor修改元素//*[@class="activity-action"][1]
使其可见吗?
答案 0 :(得分:0)
基于提供的异常:
已完成命令waitForElementVisible(15235毫秒),并且在等待元素
<//div[@class="activity-container"]/div[1]>
可见15,000毫秒时超时。 -预期为“可见”,但显示为:“不可见
您给Selenium的xpath错误。硒尝试单击 activity-container div的 child div,该div是具有style="display: none;
请先在Chrome开发工具中验证您的xpath,然后再将其传递到Selenium测试中