2014-12-19 3 views
1

У меня есть HTML-код, как:Селен WebDriver (Java) - выбор конкретного элемента в зависимости от состояния

<div class="ex1"> 
    <div class="ex2"> 
     <span>test1</span> 
     <span class="ex3">test2</span> 
    </div> 
    <div class="ex2"> 
     <span>test3</span> 
     <span class="ex3">test2</span> 
    </div> 
</div> 

Я использую Selenium WebDriver. И мне нужно, чтобы создать Java-код, который мог бы:

Если <span>test3 затем выберите <span class="ex3">, который находится внутри одной и те же div class="ex2" Но так как у меня есть DIV-х и охватывает с тем же Classname внутри одной магистрали я не могу отличаться это охватывает. .

Не могли бы вы помочь мне решить эту проблему?

Так, что-то вроде этого:

Если <span>test3 then <span class=ex3>test2. или Если <span>test1 then <span class=ex3>test2.

Благодаря

+0

Пожалуйста, отметьте любой из ответов (ответов) в качестве ответа, который вам помог. Благодаря.. :) – Subh

ответ

1

1- Используйте этот XPath, чтобы добраться до <span>test1 then <span class=ex3>test2:

//span[.='test1']/following-sibling::span[.='test2'] 

И , нас е в коде следующим образом:

WebElement ele = driver.findElement(By.xpath("//span[.='test1']/following-sibling::span[.='test2']")); 


2-А, используйте этот XPath, чтобы добраться до <span>test3 then <span class=ex3>test2:

//span[.='test3']/following-sibling::span[.='test2'] 

Использование в коде, как это:

WebElement ele = driver.findElement(By.xpath("//span[.='test3']/following-sibling::span[.='test2']")); 
0

Я выполнил заявление If в соответствии с вами На практике вы можете изменить его в соответствии с вашим требованием.

WebElement test1_class1 =wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='ex1']//div[1]//span[1]"))); 
String test1= test1_class1.getText(); 
WebElement test2_class1 =wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='ex1']//div[1]//span[2]"))); 
String test2_1 =test2_class1.getText(); 
WebElement test3_class2 =wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='ex1']//div[2]//span[1]"))); 
String test3 =test3_class2.getText(); 
WebElement test2_class2 =wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='ex1']//div[2]//span[2]"))); 
String test2_2 =test3_class2.getText(); 
try 
{ 
if(test1.equals("test1")) 
        { 
        System.out.println(test2_1); 
        } 
if(test3.equals("test3")) 
        else 
        { 
        System.out.println(test2_2); 
        } 

} 
catch(Throwable e) 
{ 
System.out.println("Exception in program"+e); 
} 
Смежные вопросы