Как извлечь атрибут 'src' в соответствии с HTML через Selenium и Java - PullRequest
0 голосов
/ 24 августа 2018

У меня есть HTML-страница:

<video crossorigin="anonymous" class="" id="video" playsinline="true" 
       src="https://df.dfs.bnt.com/
       DEEAB832j06E9j413FjAA8Dj2zxc535DA2072E3jW01j15579/mp4- 
       hi/jFNf2IbBoGF28IzyU_WqkA,1535144598/zxxx/
       contents/1/8/1a57ae021173751b468cca136e0192.mp4? 
       rnd=0.38664488150364296"> 
</video>

Через Selenium WebDriver я попытался получить URL-адрес видео:

By videoLocator = By.id("video");
WebElement videoElement = driver.findElement(videoLocator);
String videoUrl = videoElement.getAttribute("src");

Но videoUrl - всегда возвращает "" (пусто).

Однако, например:

videoElement.getAttribute("crossorigin")

верните правильный ответ: " аноним ".

Я пытался получить этот URL из атрибута src, используя javascript:

String videoUrl = (String) js.executeScript("return document.getElementById( 'video' ).getAttribute( 'src' );");

Но результат все тот же: "" .

Полагаю, проблема в crossorigin = "anonymous" но что с этим делать? Как я могу получить значение SRC?

Извините, за мой плохой английский.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Согласно предоставленному вами HTML, вам нужно вызвать WebDriverWait , и вы можете использовать следующее решение:

WebElement videoElement = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//video[@id='video' and @crossorigin='anonymous'][starts-with(@src,'http')]")));
System.out.println(videoElement.getAttribute("src"));
0 голосов
/ 24 августа 2018

Попробуйте извлечь атрибут innerHTML.Код:

By videoLocator = By.id("video");
WebElement videoElement = driver.findElement(videoLocator);
String videoUrl = videoElement.getAttribute("innerHTML");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...