【发布时间】:2017-08-18 16:28:41
【问题描述】:
我正在尝试使用 Python 和 Selenium 在 LinkedIn 上添加联系人。我正在尝试通过在具有无限滚动功能的“网络”选项卡 (https://www.linkedin.com/mynetwork) 中添加 LinkedIn 提出的联系建议来实现。
基本上,我希望脚本找到每个建议配置文件旁边的“连接”按钮,单击该按钮,然后重复直到出现错误,脚本应向下滚动以加载更多“连接”按钮以重复。
我发现找到按钮元素的最佳方法是通过 find_element_by_class_name(),因为所有连接按钮都具有相同的类。我也尝试使用 CSS 和 Xpath 定位元素,但没有成功。
问题:脚本能够单击第一个连接按钮,但之后没有。我已经尝试了很多实现的想法(通过 Xpath、CSS 定位,使用要单击的按钮列表),但似乎没有一个可行。下面是脚本的相关部分。
while True:
try:
driver.find_element_by_class_name("mn-person-card__person-btn-ext.button-secondary-medium").click()
time.sleep(1)
except:
pass
print("trying to scroll")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
有什么想法吗?对我来说,似乎代码应该可以工作,并且好像还有其他东西阻碍了成功。也许是一个错误或类似的东西。可能会提到我对这一切都很陌生,这是我尝试制作的第一个用于操作浏览器的脚本。
我正在使用 Firefox 驱动程序。完整的脚本可以在这里找到:http://pastebin.com/qtdNsRtz
提前致谢!
【问题讨论】:
-
您不能将复合类与
by_class_name()一起使用。您在那里使用了 CSS 选择器,这可能是它不起作用的原因。
标签: python class selenium firefox