Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 WebDriver跨类getText()_Java_Xpath_Selenium Webdriver - Fatal编程技术网

在Java中使用Selenium WebDriver跨类getText()

在Java中使用Selenium WebDriver跨类getText(),java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,它的一行中的一个表包含以下可用的td,我想在单独的字符串中获取span类值(其动态n个span可能可用), 指加利福尼亚州奥克兰富兰克林街1111号94607-5200 HTML 请帮助获取span class值。首先获取所有span元素,并将它们保留在WebElement列表中。然后在循环中使用getText()获取元素。您可以像下面这样使用: List<WebElement> allSpanElements = driver.findElements(By.xpath(" //*

它的一行中的一个表包含以下可用的td,我想在单独的字符串中获取span类值(其动态n个span可能可用), 指加利福尼亚州奥克兰富兰克林街1111号94607-5200

HTML


请帮助获取span class值。

首先获取所有span元素,并将它们保留在WebElement列表中。然后在循环中使用getText()获取元素。您可以像下面这样使用:

List<WebElement> allSpanElements = driver.findElements(By.xpath(" //*[@id='printable-area']/table[" + r + "]/tbody/tr[4]/td/p[2]/span"));
for (WebElement elem : allSpanElements) {
    String address = elem.getText();
    //System.out.println(address);
}

正如您所提到的,您可以使用以下xpath轻松获取受让人名称:

String recAssignee = driver.findElement(By.xpath(" //*[@id='printable-area']/table[" + r + "]/tbody/tr[4]/td/a")).getText().replace("Assignee", "");
现在,要获取单独字符串中的跨度类值,例如加利福尼亚州奥克兰富兰克林街1111号94607-5200,可以使用以下代码块:

List<WebElement> myElements = driver.findElements(By.xpath("//*[@id='printable-area']/table[" + r + "]/tbody/tr[4]/td/a[@class='ng-binding ng-scope']/span[@class='ng-binding ng-scope']"));
List<String> partA = new ArrayList<String>();
List<String> partB = new ArrayList<String>();
for(int i=0; i<myElements.size(); i=i+2)
{
    String textA = myElements.get(i).getAttribute("innerHTML");
    partA.add(textA);
}

for(int j=1; j<myElements.size(); j=j+2)
{
    String textB = myElements.get(j).getAttribute("innerHTML");
    partB.add(textB);
}
System.out.println("The Complete Addresses are : ");
for(int k=0; k<partA.size();k++)
    System.out.println(partA.get(k) + " , " + partB.get(k));    
List myElements=driver.findElements(By.xpath(“/*[@id='printable-area']]/table[“+r+”]/tbody/tr[4]/td/a[@class='ng-binding-ng scope']]/span[@class='ng-binding-ng scope']);
List partA=new ArrayList();
List partB=new ArrayList();

对于(int i=0;我想打印加利福尼亚州奥克兰富兰克林街1111号94607-5200
,还是只打印富兰克林街1111号,或者只打印加利福尼亚州奥克兰94607-5200?@Prabu你得到答案了吗?@Prabu很高兴知道你的答案。我已经把这个问题投了更高的票,以便其他人可以从你那里得到帮助信息技术
By.className("ng-binding ng-scope");
String recAssignee = driver.findElement(By.xpath(" //*[@id='printable-area']/table[" + r + "]/tbody/tr[4]/td/a")).getText().replace("Assignee", "");
List<WebElement> myElements = driver.findElements(By.xpath("//*[@id='printable-area']/table[" + r + "]/tbody/tr[4]/td/a[@class='ng-binding ng-scope']/span[@class='ng-binding ng-scope']"));
List<String> partA = new ArrayList<String>();
List<String> partB = new ArrayList<String>();
for(int i=0; i<myElements.size(); i=i+2)
{
    String textA = myElements.get(i).getAttribute("innerHTML");
    partA.add(textA);
}

for(int j=1; j<myElements.size(); j=j+2)
{
    String textB = myElements.get(j).getAttribute("innerHTML");
    partB.add(textB);
}
System.out.println("The Complete Addresses are : ");
for(int k=0; k<partA.size();k++)
    System.out.println(partA.get(k) + " , " + partB.get(k));