2015-09-17 5 views
1

Вот Java-код класса тестаСелен не может нажать на ссылку вида SERP в Google

public class Selenium_Test { 

    @Test 
    public void startWebDriver() { 
     System.setProperty("webdriver.chrome.driver", "C:\\ChromeDriver\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.navigate().to("https://www.google.com"); 
     Assert.assertEquals("Google", driver.getTitle()); 
     WebElement searchField = driver.findElement(By.cssSelector("input.gsfi")); 
     searchField.sendKeys("datapine.com`");` 
     searchField.submit(); 
     WebElement pricing = driver.findElement(By.linkText(".//a[text() = 'Pricing']")); 
     List<WebElement> linkElements = driver.findElements(By.xpath("//*[@id='rso']/li")); 

     for (WebElement result : linkElements) { 
      if (result.equals(pricing)) { 
       result.click(); 
      } 
     } 
    } 
} 

Я всегда получаю ошибку, что Селена не может узнать элемент на странице. Может ли любой орган помочь?

Вот StackTrace:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":".//a[text() = 'Pricing']"} 
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:340) 

ответ

1

По линии текста локатора следует использовать с текстом в ссылка и не выражение XPath. Заменить:

By.linkText(".//a[text() = 'Pricing']") 

с:

By.linkText("Pricing") 

Вы можете дополнительно нужно засаде элемент появится:

WebDriverWait wait = new WebDriverWait(webDriver, 5); 
WebElement pricing = wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Pricing"))); 
pricing.click(); 
+0

та же ошибка, если я делаю такой способ выше – Den

+0

Невозможно найти элемент: {"метод": "текст ссылки", "селектор": "Ценообразование"} – Den

+0

@ Да, хорошо, теперь это другая проблема. Проверьте обновление. – alecxe

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