【问题标题】:Clicking on link within Google search results using Selenium webdriver通过 Google 使用 Selenium Web 驱动程序单击链接
【发布时间】:2017-11-06 07:14:29
【问题描述】:

我正在尝试使用 selenium 网络驱动程序打开 Google 搜索 Youtube,然后单击 Youtube 链接。 (我知道我可以直接去那里,但这是一个概念证明)我尝试过不同的解决方案,但我一直无法找到 Youtube 链接供我点击。

这是我所拥有的:

driver = webdriver.Chrome()
driver.get("https://google.com")
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("youtube")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
link = driver.find_element_by_link_text('YouTube')
link.click()

我无法识别 HTML,所以只需在谷歌上检查它以查看 Youtube 的 HTML。

python 中的答案也将不胜感激。

感谢您的帮助。

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    这是您问题的答案:

    To open up Google search for Youtube and then click on the Youtube link,这是您自己的工作代码,经过一些简单的调整:

    from selenium import webdriver
    import time
    from selenium.webdriver.common.keys import Keys
    
    driver=webdriver.Chrome("C:\\Utility\\BrowserDrivers\\chromedriver.exe")
    driver.maximize_window()
    driver.implicitly_wait(20)
    driver.get("https://google.com")
    elem = driver.find_element_by_name("q")
    elem.clear()
    elem.send_keys("youtube")
    elem.send_keys(Keys.RETURN)
    time.sleep(3)
    assert "No results found." not in driver.page_source
    driver.find_element_by_xpath('.//*[@id="rso"]/div[1]/div/div/div/div/h3/a').click()
    

    【讨论】:

    • 感谢工作!你能解释一下为什么要加上睡眠和等待的时间吗?
    • @RostSunshine 我使用time.sleep() 来让动态结果从 HTML DOM 正确呈现。谢谢
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 2011-12-30
    • 2016-09-29
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    相关资源
    最近更新 更多