Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在Selenium中的同一Web元素上得到不同的结果?_Java_Selenium_Selenium Webdriver_Xpath_Css Selectors - Fatal编程技术网

Java 为什么我在Selenium中的同一Web元素上得到不同的结果?

Java 为什么我在Selenium中的同一Web元素上得到不同的结果?,java,selenium,selenium-webdriver,xpath,css-selectors,Java,Selenium,Selenium Webdriver,Xpath,Css Selectors,从链接()我想打印来自印度局的数据。为什么在WebElement(行)上使用XPath和cssSelector时会得到不同的结果 使用XPath作为选择器的代码: package basic; import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.se

从链接()我想打印来自印度局的数据。为什么在WebElement(行)上使用XPath和cssSelector时会得到不同的结果

使用XPath作为选择器的代码:


package basic;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Assignment8 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        //div[@id='innings_2']/div[@class='cb-col cb-col-100 cb-ltst-wgt-hdr']
        System.setProperty("webdriver.chrome.driver","C:\\Users\\AW5044309\\Desktop\\Selenium\\chromedriver.exe");
        WebDriver driver= new ChromeDriver();

        driver.get("https://www.cricbuzz.com/live-cricket-scorecard/22773/nz-vs-ind-1st-t20i-india-tour-of-new-zealand-2020");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement table = driver.findElement(By.xpath("//div[@id='innings_2']/div[@class='cb-col cb-col-100 cb-ltst-wgt-hdr']"));

         List<WebElement> rows = table.findElements(By.xpath("//div[@class='cb-col cb-col-100 cb-scrd-itms']"));

    for(WebElement a: rows) {
        System.out.println(a.getText());
    }

    }

}
使用cssSelector的代码:

package basic;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Assignment8 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        //div[@id='innings_2']/div[@class='cb-col cb-col-100 cb-ltst-wgt-hdr']
        System.setProperty("webdriver.chrome.driver","C:\\Users\\AW5044309\\Desktop\\Selenium\\chromedriver.exe");
        WebDriver driver= new ChromeDriver();

        driver.get("https://www.cricbuzz.com/live-cricket-scorecard/22773/nz-vs-ind-1st-t20i-india-tour-of-new-zealand-2020");
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement table = driver.findElement(By.xpath("//div[@id='innings_2']/div[@class='cb-col cb-col-100 cb-ltst-wgt-hdr']"));

         List<WebElement> rows = table.findElements(By.cssSelector("div[class='cb-col cb-col-100 cb-scrd-itms']"));

    for(WebElement a: rows) {
        System.out.println(a.getText());
    }

    }
}

在使用xpath搜索另一个元素中的元素时,在xpath开头添加
非常重要。使用下面的代码

List<WebElement> rows = table.findElements(By.xpath(".//div[@class='cb-col cb-col-100 cb-scrd-itms']"));
List rows=table.findElements(By.xpath(“.//div[@class='cb-col cb-col-100 cb scrd itms']);
开头的
表示当前处理从当前节点开始

如果我们一开始不使用点,它意味着什么

然后在整个文档中选择具有匹配xpath的所有元素节点
//div[@class='cb-col cb-col-100 cb-scrd itms']
。(在当前场景中发生)


查看一些信息,非常感谢,这确实帮助我澄清了我的概念。