Веб-драйвер Selenium с Python - driver.title не может получить заголовок - PullRequest
3 голосов
/ 11 марта 2020

Я новичок в Selenium. Не могли бы вы объяснить, почему driver.title не может получить значение? Ниже приведен простой скрипт веб-драйвера. Я смог получить значение на https://www.google.com, но не на https://twitter.com.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')

driver = webdriver.Chrome(options=options)

driver.get("https://twitter.com")

print(driver.title)

Ответы [ 2 ]

2 голосов
/ 11 марта 2020

Заголовок для твиттера отрисовывается немного медленнее, поэтому вы можете использовать явное ожидание здесь, чтобы дождаться загрузки элемента, а затем вы можете получить заголовок.

Вы можете сделать это следующим образом:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')

driver = webdriver.Chrome(options=options)
driver.get("https://twitter.com")
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//span[text()='Log in']")))
print(driver.title)

Примечание. Необходимо добавить следующие операции импорта:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 11 марта 2020

Поскольку в Google они имеют значение в заголовке тега <title>Google</title>, но не в Твиттере, поэтому вы ничего не получите, если его там нет:)

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