2016-07-21 5 views
1

シナリオ: 'Selenium'という単語でgoogleを検索し、最初のリンクをクリックします。セレンの値を選択するための部分リンクテキスト

私はコードの下、この書かれています:

`WebDriver driver = new FirefoxDriver(); 

driver.get("https://www.google.com/"); 


driver.manage().window().maximize(); 



driver.findElement(By.id("lst-ib")).sendKeys("Selenium"); 

List<WebElement> alist = driver.findElements(By.partialLinkText("Selenium")); 

System.out.println(alist.size());` 

を、それはゼロとして私のサイズを与えています。どうして?

答えて

1

実際には、部分的なテキストSeleniumを持つすべてのリンクのリストを検索すると、高速実行のためにすべてのリンクがDOMに存在しません。あなたは以下のようDOMに見えるすべての要素まで待機するWebDriverを使用してみてください: -

WebDriver driver = new FirefoxDriver(); 

driver.get("https://www.google.com/"); 

driver.manage().window().maximize(); 

driver.findElement(By.id("lst-ib")).sendKeys("Selenium"); 
WebDriverWait wait = new WebDriverWait(driver, 10); 

List<WebElement> alist = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.partialLinkText("Selenium"))) 

System.out.println(alist.size()); 

出力:-13

はそれが役に立てば幸い... :)

1

検索しても待たずに問題が発生します。ブラウザが結果を検索して表示できるように少し待ってください。次のコードを使用してください:

driver.findElement(By.id("lst-ib")).sendKeys("Selenium"); 
Thread.sleep(5000); 

この種類の待機はお勧めできません。次のように使用して待機するようにしてください。

ここではxpathまたはidまたはクラスで使用できます。

関連する問題