gpt4 book ai didi

java - 如何切换到框架并访问其中的元素?

转载 作者:行者123 更新时间:2023-12-02 00:42:11 25 4
gpt4 key购买 nike

我想在 Chrome 浏览器中的 selenium 中访问“http://demo.guru99.com/selenium/deprecated.html”链接中文本为 已弃用的元素

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(driver.findElement(By.name("classFrame"))));
driver.switchTo().frame("classFrame");

我使用了上面的代码,但出现错误。我该怎么做?

最佳答案

你们离得很近。调用frameToBeAvailableAndSwitchToIt()不仅等待还切换Selenium <iframe>内的焦点。所以到click()在文本为 已弃用 的元素上,因为所需元素位于 <frame> 内所以你必须:

  • 针对所需的frameToBeAvailableAndSwitchToIt引入WebDriverWait
  • 为所需的 elementToBeClickable 引发WebDriverWait
  • 您可以使用以下任一 Locator Strategies :

    • cssSelector :

      new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("frame[name='classFrame']")));
      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.topNav a[href^='deprecated-list']"))).click()
    • xpath :

      new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//frame[@name='classFrame']")));
      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='topNav']//a[starts-with(@href, 'deprecated-list')]"))).click();

Here you can find a relevant discussion on Ways to deal with #document under iframe

关于java - 如何切换到框架并访问其中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57927447/

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