【问题标题】:WebDriver with Java - Not able to get all the text using Webdriver带有 Java 的 WebDriver - 无法使用 Webdriver 获取所有文本
【发布时间】:2021-04-17 01:06:26
【问题描述】:

我无法获取此网站上的所有文字 - https://niftygateway.com/marketplace

使用这个简单的代码 -

String iterativeXpath = "(//*[@id='root']/div/div[2]/div[2]/div/div[2]/div[2]/div[1]/div/div)";
        iterativeXpath = iterativeXpath.substring(0, iterativeXpath.length()-1);
        WebDriverWait wait = new WebDriverWait(driver, 15);
        for(int i = 1; i <=20; i++){
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(iterativeXpath+"["+i+"])")));
           System.out.println(driver.findElement(By.xpath(iterativeXpath+"["+i+"])")).getText());
        }

【问题讨论】:

  • 你能发布你收到的错误日志或输出吗?
  • 使用这个css选择器:p.MuiTypography-root.jss416.MuiTypography-body1
  • 你要获取所有文本吗?在站点中每个元素都有不同的 web 元素和标签和 div

标签: java selenium xpath css-selectors webdriverwait


【解决方案1】:

要等待列表可以使用visibilityOfAllElementsLocatedBy

div.MuiCardContent-root.jss414 选择器看起来更好:

driver.get("https://niftygateway.com/marketplace");
WebDriverWait wait = new WebDriverWait(driver, 20);
List<WebElement> elements = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.MuiCardContent-root.jss414")));

for(WebElement element: elements) {
    System.out.println(element.getText());
}

【讨论】:

    【解决方案2】:

    问题在于您的 XPath。这是产品名称文本的 XPath。这将为您提供具有产品名称的所有元素。那么只有你可以使用 'getText()' 方法。

    //div[@class='MuiPaper-root MuiCard-root sc-Axmtr hvJMgY jss413 MuiPaper-elevation0 MuiPaper-rounded']/div/p[1]
    

    使用此技术获取您想要的所有文本。

    【讨论】:

      【解决方案3】:

      要获取本网站https://niftygateway.com/marketplace 上的所有文本,您可以使用以下Locator Strategy

      • 使用cssSelector

        driver.get("https://niftygateway.com/marketplace");
        System.out.println(driver.findElements(By.cssSelector("div.MuiCardContent-root")).stream().map(element->element.getText()).collect(Collectors.toList())); 
        

      理想情况下,您需要为visibilityOfAllElementsLocatedBy() 诱导WebDriverWait,您可以使用以下Locator Strategy

      • 使用xpath

        driver.get("https://niftygateway.com/marketplace");
        System.out.println(new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//div[contains(@class, 'MuiCardContent-root')]"))).stream().map(element->element.getText()).collect(Collectors.toList()));
        

      控制台输出:

      [ATLAS #2/21
      Symbiocene Mythologica
      $1,333.00, The Flipper #86/99
      The Title by Pak
      Make Offer, A Trebled Man #7/20
      Select Works by Alotta Money
      $1,850.00, UNISWAP #164/261
      Banned From The Internet Open Edition by Slime Sunday
      $725.00, Peng - Shiny #5/5
      Crystal Pops - Winter Edition by Goldweard
      $1,500.00, Gucci Ghost Aqua Pink #17/20
      Nifty Ghost Collection by Trevor Andrew
      $2,500.00, Entangled #7/15
      Tranquility by Andreas Wannerstedt
      $333.33, The Day I Decided to Fly #72/268
      Growing Up...I'm Scared Open Edition by FEWOCiOUS
      $413.00, Extrusion #447/457
      The Collision by Pak x Trevor Jones
      Make Offer, A Trebled Man #13/20
      Select Works by Alotta Money
      $1,888.88, The Square #5/6
      The Japanese Garden by Six n Five
      $2,500.00, The Last Stand of the Nation State
      Open Edition by Slimesunday
      $1,325.00, Kikai Ningyou #16/20
      Twisted Vacancy Edition
      Not Accepting Offers, Extrusion #63/457
      The Collision by Pak x Trevor Jones
      Not Accepting Offers, The Sprite
      Metamorphosis Open Edition By Metageist
      $178.88, Inu - Shiny #15/15
      Crystal Pops Asia Edition
      $358.88, Pandy - Shiny #14/40
      Crystal Pops Asia Edition
      $228.88, Peng #24/30
      Crystal Pops - Winter Edition by Goldweard
      $288.88, Tiggz - Shiny #39/75
      Crystal Pops Asia Edition
      $125.88, A Trebled Man #20/20
      Select Works by Alotta Money
      $2,500.00]
      

      【讨论】:

        猜你喜欢
        • 2018-06-18
        • 2023-03-27
        • 1970-01-01
        • 2020-12-05
        • 2016-06-13
        • 1970-01-01
        • 2019-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多