Java 验证<;部门>;使用硒

Java 验证<;部门>;使用硒,java,selenium,webdriver,selenium-chromedriver,Java,Selenium,Webdriver,Selenium Chromedriver,我需要验证网页上的特定插槽是否已加载。我正在main()函数中使用SeleniumWebDriver(我应该使用JUnit测试用例吗?) 在任何具有特定id的之间检索文本的方法有哪些 如果给出: 通过在亚马逊上销售商品赚钱 在Amazon.com上出售您的商品。亚马逊可以帮助您发展业务,接触更多客户。 当给出时,我需要提取 “通过在亚马逊上销售商品赚钱”, “在亚马逊上销售”, “在Amazon.com上销售您的商品。Amazon可以帮助您发展业务并接触更多客户。” 我应该使用哪种方法?要确

我需要验证网页上的特定插槽是否已加载。我正在
main()
函数中使用SeleniumWebDriver(我应该使用JUnit测试用例吗?)

在任何具有特定id的
之间检索文本的方法有哪些

如果给出:


通过在亚马逊上销售商品赚钱
在Amazon.com上出售您的商品。亚马逊可以帮助您发展业务,接触更多客户。
当给出
时,我需要提取

“通过在亚马逊上销售商品赚钱”,
“在亚马逊上销售”,
“在Amazon.com上销售您的商品。Amazon可以帮助您发展业务并接触更多客户。”


我应该使用哪种方法?

要确保元素已加载,请使用

通常,当您需要与元素交互时,隐式等待就足够了。一旦设置好,它就用于每个元素的查找。根据我的经验,95%的情况下这已经足够了

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
如果您需要更高级的等待(或者只使用一次等待),显式等待就在那里


有三种常用的方法可以检索具有我所知道的特定
id
的元素:

  • 首选方式:

    driver.findElement(By.id("elemId"));
    
  • 如果需要从元素开始,然后搜索其子体,那么这是一种很好的方法:

    driver.findElement(By.cssSelector("#elemId"));
    driver.findElement(By.xpath("id('elemId')"));
    
  • 许多人使用XPath的方式,因为他们熟悉XPath:

    driver.findElement(By.xpath("//*[@id='elemId']"));
    
  • 要了解和的更多信息,请参阅web上的任何教程


    关于文本:

    String text = driver.findElement(By.id("center-2")).getText();
    System.out.println(text);
    
    输出

    在亚马逊上卖东西赚钱在亚马逊上卖东西 亚马逊网站上的商品。亚马逊可以帮助您发展业务,并达到 更多的顾客

    如果您想独立获取这三项内容,请使用例如:

    String headline = driver.findElement(By.cssSelector("#center-2 .headline")).getText();
    System.out.println(headline);
    
    String link = driver.findElement(By.cssSelector("#center-2 .link")).getText();
    System.out.println(link);
    
    String body = driver.findElement(By.cssSelector("#center-2 .body")).getText();
    System.out.println(body);
    

    @Slanec:你有没有用HTML美化工具来格式化上面的代码?我在粘贴代码片段时也遇到了一个问题,因为每一行都必须用
    4个空格字符进行移位
    ,我们是否可以使用某种标记,比如
    [code][/code]
    ?IntelliJ IDEA有一个格式化代码的功能,所以我使用了它,然后手动删除了(希望是)不相关的部分。有关插入SO的代码,请参见。