首页 > 解决方案 > 如何修复xpath?

问题描述

这是我必须使用的 xpath:"//*[@id="zona-mijloc"]/div/table/tbody/tr[1]/td[1]/label/kbd"

String id = driver.findElement(By.xpath("//*[@id=\"zona-mijloc\"]div/table/tr[1]/td[1]/label/kbd")).getText();

这是html代码

标签: javaselenium

解决方案


请试试这个 xpath,让我知道它是怎么回事。

//*[@id="zona-mijloc"]//div/table/tbody/tr/td/label/kbd

我能够使用上述 xpath 找到 3 个元素。如果要捕获所有 3 个元素的文本,请尝试以下代码。否则它将获取第一个元素文本。

Java 代码:

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 SW58291360 {

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "./libs/chromedriver 4");
         WebDriver driver=new ChromeDriver();
         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://www.pbinfo.ro/?pagina=judge-board&id_problema=3120&user=IosifHriscu");
        List<WebElement> ids=driver.findElements(By.xpath("//*[@id='zona-mijloc']//div/table/tbody/tr/td/label/kbd"));
        for(int i=0;i<ids.size();i++)
        {
            System.out.println(ids.get(i).getText());
        }
        driver.quit();
    }

}

Python代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('/usr/local/bin/chromedriver')  # Optional argument, if not specified will search path.
driver.implicitly_wait(15)    
driver.get("https://www.pbinfo.ro/?pagina=judge-board&id_problema=3120&user=IosifHriscu");

WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.XPATH, "//*[@id='zona-mijloc']//div/table/tbody/tr/td/label/kbd"))) #Wait for specific element 

table_rows= driver.find_elements(By.XPATH,"//*[@id='zona-mijloc']//div/table/tbody/tr/td/label/kbd")

for rows in table_rows:
    print rows.text

driver.quit()

输出

#16401488
#16401481
#16401478

推荐阅读