gpt4 book ai didi

java - Selenium Webdriver 错误 "Element is not clickable at point"PrimeFaces SelectOneMenu

转载 作者:行者123 更新时间:2023-12-01 12:08:27 24 4
gpt4 key购买 nike

我已经检查了有关此错误的许多问题,但我发现的解决方案都不适合我。我对 SelectOneMenu 元素的测试在 FF 和 IE 中运行良好,但在 Chrome 中则不行。

driver.findElement(By.id("csbform:bankszamlaSelectOne_label")).click();

我不知道如何解决这个问题,但我知道它是什么。当我选择列表中的一个选项时,prime faces 下拉列表组件(selectonemenu)会进行 ajax 调用,这会更改另一个下拉列表的选项(这是 id="csbform:bankszamlaSelectOne_label"的选项),我应该等待完成。我使用以下函数等待ajax完成:the function can be found here该功能在 FF 和 IE 中发挥得非常出色。

我的主要问题是找不到适合 Chrome 的解决方案。我不想在测试中使用任何 thread.Sleep() 函数,因为它不是等待未知时间的解决方案。这将是 1-2 秒,但由于运行 Web 应用程序的服务器的负载,时间会更长。所以这是不可预测的。

我尝试了 JavaScript 执行器向上或向下滚动,但它不起作用,我还尝试了预期条件来等待元素可点击,但什么也没有。

请帮助我,因为我没有任何其他想法来解决这个问题。

出现问题的html代码:

<h:panelGroup layout="block" styleClass="input-row input-select">
<h:outputLabel styleClass="label" value="#{msgs.Partner}"/>
<h:panelGroup layout="block" styleClass="input-container">
<p:selectOneMenu effectSpeed="120" id="partnerSelectOne" value="#{csopBeszFelvitelManagedBean.selectedPartner}" styleClass="fullwidth">
<f:selectItems value="#{csopBeszFelvitelManagedBean.partnerListaSelectItems}"/>
<f:converter converterId="EntityConverter"/>
<p:ajax update="bankszamlaSelectOne, csodeljaras"/>
</p:selectOneMenu>
<p:message for="partnerSelectOne" />
</h:panelGroup>
</h:panelGroup>

<h:panelGroup layout="block" styleClass="input-row input-select">
<h:outputLabel styleClass="label" value="#{msgs.Szamla}"/>
<h:panelGroup layout="block" styleClass="input-container">
<p:selectOneMenu effectSpeed="120" id="bankszamlaSelectOne" value="#{csopBeszFelvitelManagedBean.selectedBankszamla}" styleClass="fullwidth">
<f:selectItems value="#{csopBeszFelvitelManagedBean.bankszamlaListaSelectItems}"/>
<f:converter converterId="EntityConverter" />
<p:ajax update="partnerSelectOne" />
</p:selectOneMenu>
<p:message for="bankszamlaSelectOne" />
</h:panelGroup>
</h:panelGroup>

最佳答案

问题已经解决了。有一个 primefaces block-ui 元素会阻挡屏幕几毫秒。它的速度足够快,足以让用户看不见,但又不够快而消失,但是 ajax 队列已经清空,但我的测试失败了。我为该阻止元素提供了一个唯一的 id,现在我正在使用 Expectedconditions.invisibilityof() 函数来确保当我尝试单击第二个 selectonemenu 时屏幕上没有 block-ui 元素。

关于java - Selenium Webdriver 错误 "Element is not clickable at point"PrimeFaces SelectOneMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com