首页 > 解决方案 > get() 缺少 1 个必需的位置参数:'url'

问题描述

运行以下代码时,我不断收到“get() 缺少 1 个必需的位置参数:'url'”的错误

import selenium.webdriver as webdriver

def get_results(search_term):
    url = "https://www.google.com"
    browser = webdriver.Chrome
    browser.get(url)
    search_box = browser.find_element_by_class_name('gLFyf gsfi')
    search_box.send_keys(search_term)
    search_box.submit()
    try:
        links = browser.find_element_by_xpath('//ol[@class="web_regular_results"]//h3//a')
    except:
        links = browser.find_element_by_xpath('//h3//a')
    results = []
    for link in links :
        href = link.get_attribute('href')
        print(href)
        results.append(href)
    browser.close()
    return results

get_results('dog')

该代码应该从谷歌返回“狗”的搜索结果,但卡在

browser.get(url)

感谢所有帮助

标签: pythonselenium

解决方案


这个问题在浏览器的分配中,browser = webdriver.Chrome. 它需要是browser = webdriver.Chrome()

在您的代码中,您不是将 chrome webdriver 的实例分配给浏览器,而是将类本身分配给浏览器。因此,当您调用时def get(self, url),您的 url 参数被分配给self并且url未提供参数,因此位置参数错误。


推荐阅读