gpt4 book ai didi

java - 调整浏览器窗口大小后无法从元素获取文本(Chrome)

转载 作者:行者123 更新时间:2023-12-02 01:28:16 31 4
gpt4 key购买 nike

  1. 加载网址https://sfo-demo.herokuapp.com/model-portfolio在 Chrome 中
  2. 能够看到 2 个选项卡(根据您的喜好推荐 3 个投资组合)以及其他 15 种投资组合选择)
  3. 对这 2 个元素执行 Gettext 会获得相同的文本(即显示的文本)
  4. 将窗口大小调整为 667、375(d.manage().window().setSize(new Dimension(667, 375));)
  5. 这 2 个选项卡的文本已更改。现在,对这两个元素执行的 gettext() 将不会获取任何文本

最佳答案

当您将窗口调整大小667, 375时,您看到的元素来自移动 View ,并且位于 DOM Tree 内的不同位置。所以你需要使用不同的 Locator Strategy如下:

  • 代码块:

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("start-maximized");
    chromeOptions.addArguments("disable-infobars");
    chromeOptions.addArguments("--disable-extensions");
    WebDriver driver = new ChromeDriver(chromeOptions);
    driver.get("https://sfo-demo.herokuapp.com/model-portfolio");
    System.out.println("Elements in list with full screen:");
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("ul.model-portfolio-navs.hidden-sm.hidden-xs a"))).stream().map(element->element.getAttribute("innerHTML")).collect(Collectors.toList()));
    driver.manage().window().setSize(new Dimension(667, 375));
    System.out.println("Elements in list with window resized:");
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("ul.model-portfolio-navs.mobile.hidden-md.hidden-lg a"))).stream().map(element->element.getAttribute("innerHTML")).collect(Collectors.toList()));
  • 控制台输出:

    Elements in list with full screen:
    [
    3 Portfolio recommendations based on your preferences
    ,
    15 other portfolio choices available
    ]
    Elements in list with window resized:
    [Recommended (3), Others (15)]

关于java - 调整浏览器窗口大小后无法从元素获取文本(Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527756/

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