2016-05-03 2 views
0

Я пытаюсь проверить этот сайт с помощью JUnit и Селен: https://www.oanda.com/currency/converter/Два разных элемента с одинаковым xpath?

Я попытался выбрать блок из «Currency I Have», а также "валюты I Want". Затем я узнал, что xpaths одинаковы. Только коды «Валюта у меня» могут быть успешно запущены. «Валюта, которую я хочу» всегда терпит неудачу.

Xpath является driver.findElement(By.xpath("//span[text() = 'GBP']")).click();

Может кто-нибудь помочь в этом? Благодарю.

Код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"); 
    } 
} 

ответ

2

Я считаю 4 элементов на этой странице соответствия, что XPath. (Хотя при дальнейшей проверке похоже, что вы можете пойти либо в каждой паре, так как они обманывают.) Вам нужно найти уникальные родительские элементы для определенного диапазона, который вы хотите. Например два уникальных согласующих элементов также может ссылаться более однозначно через:

//div[@id='quote_currency_selector']//span[text()='GBP'] 

(я думаю, что это тот, который вы хотите) Другой может ссылаться более однозначно через:

//div[@id='base_currency_selector']//span[text()='GBP'] 

Я получил биты выбора «котировочный валютный селектор» и «базовая валюта» от «предков» DIV, которые были «выше» дерева XML из записей «GBP» в раскрывающихся списках.

+0

Это хорошо работает. Огромное спасибо. – robertredrain

Смежные вопросы