当前位置: 首页 > 知识库问答 >
问题:

在某些情况下,对web元素没有操作,只有在完全加载表单之后才可用

韦睿
2023-03-14

我使用htmlelements模式,类似于PageFactory。通过@findby搜索元素。与某些元素不能执行操作(click,sendkeys...),因为页面上的表单没有完全加载并且看起来没有对其执行操作,而驱动程序已经在尝试为其执行操作。仅帮助方法thread.sleep()。但我想使用显式等待。Timeouts(),htmlelements的成员没有帮助。例如:

public class ButtonForm extends HtmlElement {

    @FindBy(xpath = "//span[text()='Select']")
    public Button selectButton;

    public void selectButton() {
        selectButton.click();
    }

在当前的测试中,一个长时间运行的行为,没有点击操作。我想实现像这样的韧带:“WebElement+WebDriverWait+ExpectedConditions”

共有1个答案

江宏放
2023-03-14

问题可能在这里@findby(xpath=“//span[text()='select']”)。当使用//启动xpath表达式时,selenium忽略元素上下文和从文档根查找。所以可能您的操作(click,sendkeys)可以工作,但在错误的元素上。若要解决此问题,请使用./启动xpath或使用css定位器。

 类似资料:
  • 我不确定以下问题是否适用于jaxb,但我还是会问。 在某个项目中,我们使用带有定义模式的jaxb来创建xml文件的下一个结构。 我们还使用jaxb的自动类生成来创建类:aaa和bbb,其中aaa生成为@XmlRootElement。 我们现在希望在新项目中使用相同的模式,该模式也将与以前的项目兼容。我想做的是使用相同的jaxb生成的类,而不需要对模式进行任何更改,以便仅将单个bbb对象封送到xml

  • 使用cssSelector,我能够找到一些具有id属性的元素。例如: 使用Selenium 2(WebDriver)中的isDisplayed(),可以发现它是真的。 我的问题是单击下面的一些链接,我可以使用xpath找到这些链接,但使用isDisplayed()发现这些链接为false。 我尝试使用以下代码查找: 大小显示为1,但isDisplayed()返回false。 如何使此元素可见并能够

  • 基本上,我试图实现的是调用第二个存储库(一个)或抛出一个异常,这取决于调用第一个存储库的结果。 我最初的想法是这样的: 这将对应于以下非反应性方法: 我还没有找到一种方法来以反应性非阻塞的方式做到这一点。所有我需要的是抛出一个错误,如果一个空的出来的第一个调用,并继续管道,如果不是空的;但我似乎不能使用或在这里正确,和没有帮助,因为它跳过了空的。 如果我使用而不是,我有一个解决办法,但我不太满意它

  • 首先,我知道这个问题在许多其他线程中都有描述。但是我无法找到并回答这个问题,为什么这个错误并不总是被抛出? 让我描述一下我的意思。我写了一些示例代码来说明这一点: DSA 最后进行比较测试: 在运行时,我们会收到这个描述的问题 Java . lang . illegalargumentexception:比较法违反了它的通用契约! 根据托收文件。排序方法: (可选)如果实现检测到列表元素的自然排序

  • 我正在使用Transform创建一个windows安装包,使其成为多实例。我的mst文件更新了某些注册表项组件的产品代码和GUID。这是每台机器安装。现在我无法卸载我的产品,如果: 我的mst文件从其原始位置删除 TransformsSecure策略设置为1 安装程序尝试在原始位置查找mst文件,但无法执行此操作,卸载失败。在这两种情况下,我可以做什么让我的产品卸载? 一些额外信息。我看到我的ms

  • 问题内容: 我正在学习d3。有某些方法可以在d3 js 中加载数据。但是他们似乎都进行了HTTP GET。在我的场景中,我已经在字符串中包含了json数据。如何使用此字符串代替发出另一个http请求?我试图为此寻找文档,但没有找到。 这有效: 现在,如果我有: 如何在d3中使用已计算的“ myjson”并避免对服务器的异步调用?谢谢。 问题答案: 只需将通话替换为 IE浏览器: 更新09/2013