Java 使用相同xpath的两个不同元素?

Java 使用相同xpath的两个不同元素?,java,selenium,xpath,Java,Selenium,Xpath,我正在尝试使用JUnit和Selenium测试此网站: 我试图从“我拥有的货币”和“我想要的货币”中选择单位。然后我发现XPath是一样的。只有“我拥有的货币”代码才能成功运行。“我想要的货币”总是失败 Xpath是driver.findElement(By.Xpath(“//span[text()='GBP']”) 有人能帮忙吗?谢谢 代码1: public class Currency_I_Have { WebDriver driver = new FirefoxDriver();

我正在尝试使用JUnit和Selenium测试此网站:

我试图从“我拥有的货币”和“我想要的货币”中选择单位。然后我发现XPath是一样的。只有“我拥有的货币”代码才能成功运行。“我想要的货币”总是失败

Xpath是
driver.findElement(By.Xpath(“//span[text()='GBP']”)

有人能帮忙吗?谢谢

代码1:

public class Currency_I_Have {
    WebDriver driver = new FirefoxDriver();

    @Before
    public void setUp() throws Exception {
        driver.manage().window().maximize();
        driver.get("https://www.oanda.com/currency/converter/");
    }

    @Test
    public void test() {
        driver.findElement(By.id("quote_currency_input")).click();

        driver.findElement(By.xpath("//span[text() = 'GBP']")).click();
        WebElement Amount = driver.findElement(By.id("quote_amount_input"));
        Amount.clear();
        Amount.sendKeys("100");
    }
}
代码2:

public class Currency_I_Want {
    WebDriver driver = new FirefoxDriver();

    @Before
    public void setUp() throws Exception {
        driver.manage().window().maximize();
        driver.get("https://www.oanda.com/currency/converter/");
    }

    @Test
    public void test() {
        driver.findElement(By.id("base_currency_input")).click();

        driver.findElement(By.xpath("//span[text() = 'GBP']")).click();
        WebElement Amount = driver.findElement(By.id("base_amount_input"));
        Amount.clear();
        Amount.sendKeys("200");
    }
}

我在该页面上计算了4个与XPath匹配的元素。(尽管在进一步检查时,您可能会选择每对中的任何一个,因为它们是重复的。)您需要做的是为您想要的特定跨度找到唯一的父元素。例如,两个唯一的匹配元素也可以通过以下方式进行更唯一的引用:

//div[@id='quote_currency_selector']//span[text()='GBP']
//div[@id='base_currency_selector']//span[text()='GBP']
(我想这就是你想要的) 另一个可以通过以下方式更唯一地引用:

//div[@id='quote_currency_selector']//span[text()='GBP']
//div[@id='base_currency_selector']//span[text()='GBP']
我从“祖先”div中获得了“报价货币选择器”和“基础货币选择器”位,这些div在下拉列表中的“GBP”条目中位于XML树的“更高”位置