【问题标题】:Python Selenium's Key.RETURN is not returing new web pagePython Selenium Keys.RETURN 未返回新网页
【发布时间】:2021-10-11 00:00:30
【问题描述】:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.implicitly_wait(40)
driver.get("https://www.youtube.com/")
elem = driver.find_element_by_name("search_query")
elem.clear()
elem.send_keys("python")
elem.send_keys(Keys.RETURN)

此代码假设在网页的搜索框中发送“python”并获取一个新网页,但它不起作用,我不知道为什么。

【问题讨论】:

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


    【解决方案1】:

    您需要在传递返回键之前放置一些延迟/等待。

    driver = webdriver.Firefox()
    driver.maximize_window()
    driver.implicitly_wait(30)
    
    driver.get("https://www.youtube.com/")
    elem = driver.find_element_by_name("search_query")
    elem.clear()
    elem.send_keys("python")
    time.sleep(2)
    elem.send_keys(Keys.RETURN)
    

    【讨论】:

    • 我工作得很好,但你能告诉我背后的原因,以便我改进我的编程。
    • 基本上元素没有正确渲染,我们不得不使用等待来完成工作。
    【解决方案2】:

    另一个技巧是,当您在文本框中输入文本时,尝试模拟用户操作。例如,在这种情况下,单击该文本框,然后输入。(参考代码注释)。

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Firefox()
    driver.implicitly_wait(40)
    driver.get("https://www.youtube.com/")
    elem = driver.find_element_by_name("search_query")
    elem.clear()
    elem.send_keys("python")
    elem.click() # add this line to your code
    elem.send_keys(Keys.RETURN)
    

    【讨论】:

      猜你喜欢
      • 2015-06-10
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 2014-03-20
      • 2019-06-18
      相关资源
      最近更新 更多