如何使用python&;单击linkedin中的所有连接按钮;硒?

如何使用python&;单击linkedin中的所有连接按钮;硒?,python,selenium,selenium-webdriver,selenium-chromedriver,linkedin,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,Linkedin,我在连接脚本中创建了链接,但他正在单击我的类按钮,现在我的错误是如何单击所有连接按钮 如何单击“所有连接”按钮 这是我的密码: #search click_search = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/header[1]/div[1]/form[1]/div[1]/div[1]/div[1]/artdeco-typeahead-deprecated

我在连接脚本中创建了链接,但他正在单击我的类按钮,现在我的错误是如何单击所有连接按钮

如何单击“所有连接”按钮

这是我的密码:

#search

click_search = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/header[1]/div[1]/form[1]/div[1]/div[1]/div[1]/artdeco-typeahead-deprecated[1]/artdeco-typeahead-deprecated-input[1]/input[1]"))).send_keys("pyt")
time.sleep(.2)
click_search = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/header[1]/div[1]/form[1]/div[1]/div[1]/div[1]/artdeco-typeahead-deprecated[1]/artdeco-typeahead-deprecated-input[1]/input[1]"))).send_keys("hon")
time.sleep(.2)
click_search = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/header[1]/div[1]/form[1]/div[1]/div[1]/div[1]/artdeco-typeahead-deprecated[1]/artdeco-typeahead-deprecated-input[1]/input[1]"))).send_keys(Keys.ENTER)
click_people = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/div[5]/div[7]/div[4]/div[1]/div[1]/header[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/button[1]/span[1]"))).click()
click_connect = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/div[5]/div[7]/div[4]/div[1]/div[2]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/ul[1]/li[4]/div[1]/div[1]/div[3]/div[1]/button[1]"))).click()
click_done = WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.XPATH, "/html[1]/body[1]/div[5]/div[8]/div[1]/div[1]/div[1]/section[1]/div[1]/div[2]/button[2]"))).click()

使用绝对XPath定位器不是最好的主意,因为这会使它们非常脆弱,并且对任何更改都非常敏感

推荐的方法是在可能的情况下使用,但是,当ID不存在或是动态的时,最好找到一种替代方法

例如,您可以坚持按钮文本

比较
人的XPath表达式

/html[1]/body[1]/div[5]/div[7]/div[4]/div[1]/div[1]/header[1]/div[1]/div[1]/div[1]/ul[1]/li[1]/button[1]/span[1]
关于这一点:

//span[text()='People']
两个表达式基本上匹配相同的元素:

因此,您可以使用以下功能获取所有
Connect
按钮:

connect_buttons = driver.find_elements_by_xpath("//button[text()='Connect']")

for connect_button in connect_buttons:
    print(connect_button.get_attribute("aria-label"))
参考资料:


所以。。。错误在哪里?如何单击所有连接按钮错误:回溯(最近一次调用):文件“\linked\u conconnecting\u script.py”,第93行,在for connect_按钮中在connect_按钮中:TypeError:“NoneType”对象不是iterableuse
find_elements_by_xpath
函数当他单击connect按钮并给出回溯错误时仍在运行现在我如何单击done按钮,因为当他单击connect按钮时出现回溯错误