【问题标题】:Selenium webdriver with Python - driver.title can't get titleSelenium webdriver 与 Python - driver.title 无法获得标题
【发布时间】:2020-03-11 16:33:41
【问题描述】:

我是 Selenium 的新手。您能解释一下为什么 driver.title 无法获得价值吗?下面是一个简单的 webdriver 脚本。我能够在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)

【问题讨论】:

    标签: python-3.x selenium selenium-webdriver


    【解决方案1】:

    twitter 的标题渲染有点慢,所以你可以在这里使用显式等待来等待元素首先加载,然后你可以获取标题。

    你可以这样做:

    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
    

    【讨论】:

    • 这很有帮助。非常感谢你。我能够获得价值。所以我试图在标题标签呈现之前获取值。
    【解决方案2】:

    因为谷歌他们在标题标签中具有价值 <title>Google</title> 但不是 Twitter,所以如果它不存在,你将不会得到任何东西 :)

    【讨论】:

    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2021-07-04
    • 2013-03-26
    • 2017-02-22
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多