如何点击链接列表中的每个链接? - Python,Selenium

时间:2016-02-06 02:16:11

标签: python selenium selenium-webdriver

我试图点击链接列表中的一个链接,等待一秒钟(尚未添加),然后单击下一个链接。使用硒和bs4。这是我的代码:

links = ['https://www.bing.com', 'https://www.google.com', 'https://www.yahoo.com']
for url in links:
    url = "'"+url+"'"
    print(url,'\n')
    browser = webdriver.Firefox
    browser.get(url)

这是我得到的错误:

Traceback (most recent call last):
  File "C:/Users/SK/PycharmProjects/untitled/linkedin_bot.py", line 38, in <module>
    browser.get(url)
TypeError: get() missing 1 required positional argument: 'url'

我究竟做错了什么以及如何解决?感谢

2 个答案:

答案 0 :(得分:1)

您需要将<div>更改为browser = webdriver.Firefox。实际上,当你调用browser = webdriver.Firefox()时,它期望一个browser.get(url)实例作为第一个参数,一个url作为第二个参数。当您包含括号时,您正在创建webdriver.Firefox的实例,Python会自动将其作为第一个参数。

答案 1 :(得分:0)

主要问题是&#34; url&#34;变量名称与&#34; url&#34;相同在for循环中。 尝试重命名变量。

这是修改后的代码。 我使用Chrome作为驱动程序,但您可以使用Firefox或任何其他驱动程序。 请记住更改驱动程序的可执行路径以符合您的情况。

from selenium import webdriver

import time

browser = webdriver.Chrome(executable_path='C:\Chrome\chromedriver.exe')

links = ['https://www.bing.com', 'https://www.google.com', 'https://www.yahoo.com']
for url in links:
    urls = "'"+url+"'"
    print(urls,'\n')
    browser.get(url)
    time.sleep(1)