Dom DocumentFragment元素对于WebDriver不可见
我有一页要测试Dom DocumentFragment元素对于WebDriver不可见,dom,selenium-webdriver,Dom,Selenium Webdriver,我有一页要测试 <div class="activity-container"> <!--fragment#54705578f9#head--> <div fragment="54705578f9" class="activity-action"> <span class="icon-arrow_drop_down"></span> <span class="actions-description">
<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>
答复:
DOMRect{x:359.3125,y:343,宽:900,高:59,顶:343,…}
元素可见,现在选中父元素:
document.getElementsByClassName('activity-action')[0].parentNode.getBoundingClientRect()
和getDOMRect{x:0,y:0,width:0,height:0,top:0,…}
父元素不可见,因此子元素也不可见。但父元素有些奇怪:
document.getElementsByClassName('activity-action')[0]。parentNode
返回:
,我不明白这是怎么回事。我在chrome inspector中看不到这个元素。这是什么
document.getElementsByClassName('activity-action')[0].parentNode.parentNode
返回…
必须在上一步中返回此元素
通过使用JavascriptExecutor修改元素,我是否可以使元素
/*[@class=“activity action”][1]
可见?基于提供的异常:
已完成waitForElementVisible命令(15235毫秒),并在等待元素
可见15000毫秒时超时。-预期为“可见”,但得到:“不可见”
您提供给Selenium的xpath错误。Selenium尝试单击活动容器div的子项,该活动容器div是具有style=“display:none代码>
请验证您的xpath,例如在Chrome开发工具中,然后根据提供的异常将其传递给Selenium测试:
已完成waitForElementVisible命令(15235毫秒),并在等待元素
可见15000毫秒时超时。-预期为“可见”,但得到:“不可见”
您提供给Selenium的xpath错误。Selenium尝试单击活动容器div的子项,该活动容器div是具有style=“display:none代码>
在将xpath传递给Selenium测试之前,请先在Chrome开发工具中验证xpath,这听起来像是一个错误。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想做什么?@frameq理论上你可以用JSExecutor修改,但不要这样做。请提供完整的例外情况。请在单击之前尝试添加wait for ElementToBickable。我想了解为什么元素/*[@class=“activity action”][1]
具有父元素
,以及如何编辑此元素的DOMRect。我使用selenium服务器并获得详细输出:已完成命令waitForElementVisible(15235毫秒)
和在等待元素可见15000毫秒时超时。-应为“可见”,但得到“不可见”
。也许我需要在selenium bug tracker中创建bug?听起来HTML的那个部分是不可见的,而且永远也不会可见。您需要的信息是否不在页面的其他可见部分?即使元素不可见,也可以使用JSE将其从页面中删除,但在执行此操作时应具有选择性,因为它不再是用户场景。用户无法访问页面上不可见的元素。这听起来像是一个错误。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想做什么?@frameq理论上你可以用JSExecutor修改,但不要这样做。请提供完整的例外情况。请在单击之前尝试添加wait for ElementToBickable。我想了解为什么元素/*[@class=“activity action”][1]
具有父元素
,以及如何编辑此元素的DOMRect。我使用selenium服务器并获得详细输出:已完成命令waitForElementVisible(15235毫秒)
和在等待元素可见15000毫秒时超时。-应为“可见”,但得到“不可见”
。也许我需要在selenium bug tracker中创建bug?听起来HTML的那个部分是不可见的,而且永远也不会可见。您需要的信息是否不在页面的其他可见部分?即使元素不可见,也可以使用JSE将其从页面中删除,但在执行此操作时应具有选择性,因为它不再是用户场景。用户无法访问页面上不可见的元素。
document.getElementsByClassName('activity-action')[0].parentNode.parentNode