Как я могу предоставить щелчок на предложении-результат (выпадающее меню) в Википедии с тестом селена в Java? - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь написать тесты на селен в Java, и у меня возникла проблема.Тест включает в себя нажатие на выпадающее меню.Но я не могу этого достичь ...

Вот мои шаги.Сначала я захожу в немецкую википедию:

@Given("^You want to search for \"Baum\" on \"([^\"]*)\"$")
public void youWantToSearchForOnWikipediaOrg(String page) throws Throwable
{
    System.setProperty("webdriver.chrome.driver",
            "C:\\...\\chromedriver_win32\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.get("https://"+page+"/wiki/Wikipedia:Hauptseite");
}

Затем я ищу слово "Баум":

@Then("^You tipp the letters \"([^\"]*)\", \"([^\"]*)\" and \"([^\"]*)\"$")
public void youTippTheLettersAnd(String letter1, String letter2, String letter3) throws Throwable
{
    Thread.sleep(5);
    driver.findElement(By.xpath("//input[@id='searchInput']")).sendKeys(letter1);
    driver.findElement(By.xpath("//input[@id='searchInput']")).sendKeys(letter2);
    driver.findElement(By.xpath("//input[@id='searchInput']")).sendKeys(letter3);
    Thread.sleep(25);
}

Теперь появляется выпадающее меню и я хочу нажать на запись "Baum ".

@Then("^Click on the appearing Baum$")
public void clickOnTheAppearing() throws Throwable
{
    //Thread.sleep(50);
    driver.findElement(By.xpath("//a/div")).click();
}

Но xpath не может найти элемент.Я пробую разные xpath и css, но ничего не помогает ...

Примеры:

//*[@classname='mw-searchSuggest-linkinput']//*[text()='Baum']

/html/body/div[6]/div/a[1]/div/span

/html/body/div[6]/div/a[1]/div

body > div.suggestions > div > a:nth-child(1) > div > span

Сайт: enter image description here

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Вам просто нужно немного подождать, и после загрузки этого элемента используйте следующее:

Thread.sleep(3000);

driver.findElement(By.xpath(".//a[@title='Baum']")).click();

Надеюсь, это поможет вам!

0 голосов
/ 03 января 2019

Вместо щелчка выберите значение из выпадающего списка.

Webelement e1=driver.findElement(By.id(dropdownId)); Select s1=new Select(e1); s1.selectByVisibleText("Baum");//selecting value from dropdown

...