getText () из выпадающего списка, который содержит linktext, возвращает пустую строку - PullRequest
0 голосов
/ 11 января 2020

Веб-сайт https://formy-project.herokuapp.com/
Проблема, возникшая во время getText() из-за раскрывающегося списка компонентов.
код:

@Test(priority=1)
    public void elements () throws InterruptedException{

        List<WebElement> getlinks=driver.findElements(By.tagName("a"));
        int nooflinks=getlinks.size();
        System.out.println("numbers linktext in page:- "+nooflinks);

        for(int i=0;i<=nooflinks-1;i++){

            WebElement alllinks=getlinks.get(i);
            String all_Ltext=alllinks.getText();

            JavascriptExecutor jse=(JavascriptExecutor)driver;
            jse.executeScript("arguments[0].getText();", all_Ltext);
            this block is not working


            System.out.println("Link text:- "+all_Ltext +" \nNumber of charecters in text:-"+allchar +"\nand color are:- "+tcolor);
            d
}

1 Ответ

0 голосов
/ 11 января 2020

Чтобы получить текст в Selenium, элемент должен быть видимым. Вы должны подождать, пока элементы будут видны, прежде чем получить текст. WebDriverWait используется для определенных c условий ожидания:

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

WebDriverWait wait = new WebDriverWait(driver, 10);

List<WebElement> links = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("a.dropdown-item")));
// links.forEach(element -> System.out.println(element.getText()));
links.forEach(element -> {
    // Do something ...
    System.out.println("Link text: " + element.getText());
});

Нет метода JavaScript getText(), поэтому jse.executeScript("arguments[0].getText();", all_Ltext); не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...