2016-12-30 6 views
0

前の要素を同じWeb要素から取得しようとしています。しかし、Web要素が最初のWeb要素であるため、先行兄弟要素は存在せず、プロセスは永遠にハングします。 そして、(ドライバを使用するのではなく)別のwebelementからWeb要素を検索しようとしているので、暗黙の待機もうまく機能しません。第1要素の先行兄弟要素を見つけながらセレンが永遠にぶら下がっています

@BeforeTest 
public void init(){ 
    driver = new FirefoxDriver(); 
    driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS); 
    driver.get("https://account.box.com/login"); 
} 


    @Test 
public void testWebElem(){ 
    WebElement source = driver.findElement(By.xpath(".//*[@id='login-form']/div/h2")); 
    System.out.println(getPositionOfWebElem(source)); 
} 


private int getPositionOfWebElem(WebElement elem){ 
    String xpathExpressionFollowing = "./following-sibling::*"; 
    System.out.println("xPath Expression :: " + xpathExpressionFollowing); 
    List<WebElement> elemsFollowing = elem.findElements(By.xpath(xpathExpressionFollowing)); 
    printWebelems(elemsFollowing); 
    String xpathExpression = "./preceding-sibling::*"; 
    System.out.println("xPath Expression :: " + xpathExpression); 
    List<WebElement> elemsts = elem.findElements(By.xpath(xpathExpression)); 
    printWebelems(elemsts); 
    return 0; 
} 

答えて

1

2000秒以来、あなたの暗黙の待ち時間が非常に長く待っている!エルスwebdriverをがTimeUnit.MILLISECONDSを使用し、BTW 4桁の整数のあなたの好きな場合は!存在しない、先行する要素を見つけるために、2000秒間待ちます削減スニペット以下

申し訳ありませんおっと、私のため

import java.util.List; 
import java.util.concurrent.TimeUnit; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.testng.annotations.BeforeTest; 

public class Test22{ 

WebDriver driver; 

@Before 
public void init(){ 
driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
driver.get("https://account.box.com/login"); 
} 

@Test 
    public void testWebElem(){ 
WebElement source = driver.findElement(By.xpath(".//*[@id='login-form']/div/h2")); 
System.out.println(getPositionOfWebElem(source)); 
} 


private int getPositionOfWebElem(WebElement elem){ 
String xpathExpressionFollowing = "./following-sibling::*"; 
System.out.println("xPath Expression :: " + xpathExpressionFollowing); 
List<WebElement> elemsFollowing = elem.findElements(By.xpath(xpathExpressionFollowing)); 
System.out.println(elemsFollowing.size()); 
String xpathExpression = "./preceding-sibling::*"; 
System.out.println("xPath Expression :: " + xpathExpression); 
List<WebElement> elemsts = elem.findElements(By.xpath(xpathExpression)); 
System.out.println(elemsts.size()); 
return 0; 
} 

} 
+0

を働きました! :pミリ秒で時間を使うのはあまりにも常習的です; p –

+0

@DhaneshKhurana:あなたの質問に答えることができたら答えを受け入れてください! – prithvi394

関連する問題