Ошибка поиска строки в скриптах с использованием xpath / selenium / python - PullRequest
0 голосов
/ 10 мая 2018

Я сканирую веб-сайт, чтобы проверить, существует ли определенный сценарий на сайте.Я успешно извлек эту информацию из большинства сайтов, но есть несколько, которые доставляют мне неприятности, например.247sports.com, где я не могу получить эту информацию, DOM выглядит следующим образом

...

<iframe src='...'>
  <!DOCTYPE html>
  <html lang..>
  <head>
  <iframe> ...</iframe>
  ...
  <script id="utag_81" src="https://js.agkn.com/prod/v0/tag.js?_rnd=0.6281110988358267" type="text/javascript" charset="utf-8" async=""></script>
  ...
</iframe>

Я использую Firefox Webdriver для поиска строки "agkn"in src = "https://js.agkn.com/prod..."

Код Python:

x = Webdriver.find_elements_by_xpath("(//iframe|//script|//img|//a)[contains(text(),'agkn') or contains(@src,'agkn') or contains(.,'agkn') or contains(@id,'utag_81') ]")

длина x всегда равна 0.

имеет ли <!DOCTYPE html> какое-то отношение к этому?.

1 Ответ

0 голосов
/ 10 мая 2018

если в вашем коде есть iframe, вам сначала нужно переключиться на этот iframe и получить элемент с этого уровня.

Пример кода:

self.driver = webdriver.Firefox()
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
elem = driver.find_element_by_xpath("/html/body/img") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...