所以基本上我想创建一个Facebook脚本,该脚本将添加我的朋友“朋友列表”中的所有朋友,现在的问题是我们已经有很多共同的朋友(显示在“朋友”的顶部列表”),我想一直向下滚动直到出现“添加朋友”,并且一旦出现,我希望脚本单击该按钮并向他添加不是我朋友的其他所有人。现在我对编程还很陌生,所以如果您可以详细地向我解释如何执行此PS,我知道这应该在Java中完成,但是有人可以向我解释如何在Python中做到这一点吗?
代码如下:
root.get(targets_url) #targets_url is the link of targets friend list
time.sleep(10)
while True:
element = root.find_element_by_class_name('FriendRequestAdd').click()
答案 0 :(得分:0)
这不一定要用Java完成,python可以正常工作。您不必滚动到add friends
出现的位置,可以使用find_element_by_id
或任何其他查找元素的方法,它仍然可以找到它。但是,如果您确实有心去寻找并滚动到该元素。
from selenium.webdriver.ui.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
wait = WebDriverWait(root)
root.wait(3) #wait for element to visible. implicit wait.
#feel free to change XPATH to CSS_SELECTOR or whatever suits you
friendlist = wait.until(ec.element_to_be_clickable((By.XPATH,'xpath value')) #explicitly wait for element to appear on the page
root.execute_script("arguments[0].ScrollIntoView;", friendlist)
friendlist.click()
等待是为了确保
add friend
id在硒之前加载 开始搜索它,假设它不会随页面一起加载 立即。如果硒仍然看不到add friend
,那么我会 建议您使用expected_condition
和WebDriverWait
, 我完全怀疑它能否达到目标
如果显式等待不起作用,则应检查页面的该部分是否存在于iframe或其他框架上