Как извлечь текст всплывающей подсказки в приложении Angular 7 с помощью Selenium - PullRequest
1 голос
/ 29 марта 2019

Я пытаюсь прочитать текстовую подсказку в приложении angular7 через селен. Но get text возвращает пустое значение, а javascript executor возвращает null.

Ссылка на образ DOM, для которого я не могу найти xpath

Но текст get возвращается пустым, а исполнитель javascript возвращает null.

Это возвращается пустым

driver().get("https://vmware.github.io/clarity/documentation/v0.12/tooltips");
Wait(3000);
System.out.println(driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")).getText());

Это возвращает ноль

System.out.println(driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")).getAttribute("value"));

String theTextIWant = ((JavascriptExecutor) driver()).executeScript("return arguments[0].innerHTML;",driver().findElement(By.xpath("(//span[@class='tooltip-content'])[2]")));

1 Ответ

5 голосов
/ 29 марта 2019

Чтобы извлечь текст всплывающей подсказки Lorem ipsum sit в приложении Angular7 с использованием Селен необходимо:

  • Induce WebDriverWait для желаемого элемента, который должен быть видимым
  • Мышь наведите элемент.
  • Induce WebDriverWait для желаемой подсказки, которая будет видна
  • Затем извлеките Текст подсказки
  • Вы можете использовать следующее решение:

    • Кодовый блок:

      import org.openqa.selenium.By;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.chrome.ChromeDriver;
      import org.openqa.selenium.chrome.ChromeOptions;
      import org.openqa.selenium.interactions.Actions;
      import org.openqa.selenium.support.ui.ExpectedConditions;
      import org.openqa.selenium.support.ui.WebDriverWait;
      
      public class Angular_ToolTip {
      
          public static void main(String[] args) {
      
              System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
              ChromeOptions options = new ChromeOptions();
              options.addArguments("start-maximized");
              //options.addArguments("disable-infobars");
              options.addArguments("--disable-extensions");
              WebDriver driver = new ChromeDriver(options);
              driver.get("https://vmware.github.io/clarity/documentation/v0.12/tooltips");
              new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[text()='Small']//following::div[1]/a[@class='tooltip tooltip-sm']")))).build().perform();
              System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[text()='Small']//following::div[1]/a[@class='tooltip tooltip-sm']//following::span[1]"))).getAttribute("innerHTML"));
          }
      }
      
  • Выход на консоль:

    Lorem ipsum sit
    
  • Снимок браузера:

tooltip

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