【问题标题】:Is there any get body tag method for WebElement class in Selenium Java?Selenium Java 中的 WebElement 类是否有任何获取正文标记方法?
【发布时间】:2021-02-17 11:36:49
【问题描述】:

我一直在尝试获取 HTML 源代码中的页面正文。我一直在尝试使用WebElement Class。我无法访问invisibilityOfAllElements 方法,或者让我说它会引发错误。我写过这样的代码:

WebElement element = waitBody.until(ExpectedConditions.invisibilityOfAllElements(By.tagName("body")));

waitbody 是我定义的WebDriverWait 类的对象。 Eclipse 突出显示invisibilityOfAllElements 的下划线。有什么想法可以解决这个问题吗?谢谢。

【问题讨论】:

    标签: java selenium webdriverwait


    【解决方案1】:

    invisibilityOfAllElements() 需要“WebElement 列表”类型的定位器,但您提供的是“by”。

    改用 invisibilityOfElementLocated。

    【讨论】:

    • 我已经改变,它抛出错误 Type mismatch: cannot convert from Boolean to WebElement 我的新代码如下所示:WebElement element = waitBody.until(ExpectedConditions.invisibilityOfElementLocated(By.tagName("body")));
    • 你想用它做什么? invisibilityOfElementLocated 返回一个布尔值,因此它需要一个布尔值而不是 WebElement 它应该是这样的: WebDriverWait wait = new WebDriverWait(getDriver(), 100);布尔元素 = wait.until(ExpectedConditions.invisibilityOfElementLocated(By.tagName("body")));
    • 是的,它是布尔值,但我必须定义为 WebElement。正如我解释的那样,我想获取网页的正文标签。如果我连接 VPN,Selenium 会因为连接速度慢而运行缓慢。所以我想对我的代码说:嘿,检查这个页面的正文标签,你有 20 秒的时间。我已经定义了WebDriverWait waitBody = new WebDriverWait(driver, 20);
    • 好的,我不确定我是否完全理解您的意思,但存在 2 种等待情况,如果您知道您的元素会出现,只需使用 elementToBeClickable : WebElement element = wait.until(ExpectedConditions.elementToBeClickable( By.tagName("body")));否则使用 waitFor(2000);强制等待
    • elementToBeClickable 也会引发错误。我想获取正文标签的文本。如何使用waitFor?来自哪个班?你可以通过meet.google.com/bsr-hyrr-zzr帮助我
    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2010-10-17
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多