【发布时间】:2019-02-06 21:26:53
【问题描述】:
我正在使用 python 和 selenium 构建一个脚本,该脚本单击我网络上的“消息按钮”以发送默认消息。
Linkedin 使用动态字段(ember),因此无法通过 id 查找元素。到目前为止,我已经尝试过:
driver.find_elements_by_class_name("...").click()
driver.find_element_by_tag_name("button").click()
driver.find_element_by_css_selector("...").click()
driver.find_element_by_xpath(//...)
这是我目前的代码:
def TextBot(browser):
time.sleep(3)
browser.get('https://www.linkedin.com/mynetwork/invite-connect/connections/')
time.sleep(3)
xpath = '//button[contains(@aria-label,"Send message to")]'
time.sleep(3)
buttons = driver.find_element_by_xpath(xpath)
for btn in buttons:
print("Can %s" % btn.get_attribute("aria-label"))
def Main():
#Parse enail and password to the script
parser = argparse.ArgumentParser()
parser.add_argument('email', help='linkedin email')
parser.add_argument('password', help='linkedin password')
args = parser.parse_args()
#browse to the login page
browser = webdriver.Firefox()
browser.get('https://linkedin.com/uas/login')
#Parse the two argument in the login form
emailElement = browser.find_element_by_id('session_key-login')
emailElement.send_keys(args.email)
passElement = browser.find_element_by_id('session_password-login')
passElement.send_keys(args.password)
passElement.submit()
#Initialise ViewBot function
os.system('clear') #cls rather than clear on windows
print ("[+] Success! Logged In, Bot Starting")
#ViewBot(browser)
TextBot(browser)
browser.close()
我的错误:
TextBot 中的文件“LinkedInBot.py”,第 88 行 按钮= driver.find_element_by_xpath(xpath)文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”, 第 393 行,在 find_element_by_xpath 中 返回 self.find_element(by=By.XPATH, value=xpath) 文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py” , 第 966 行,在 find_element 中 'value': value})['value'] 文件 "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", 第 320 行,在执行中 self.error_handler.check_response(response) 文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py”, 第 242 行,在 check_response 中 raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: Unable to 定位元素://button[contains(@aria-label,"Send message to")]
还有什么我没有想到的吗?
顺便感谢到目前为止的答案。我很接近,但我仍然认为还有其他形式的加密可以绕过
【问题讨论】:
-
与定位器、步骤共享代码并尝试添加等待
-
干杯!我在所有地方都添加了等待。如果我输入: page.find_all('button') 我会得到一个列表,但是当我通过 driver.find_element_by 执行此操作时,我总是会收到上面的错误
-
我在我的回答中给了你需要的代码
-
谢谢你,伙计!知道为什么我得到:名称'By'未定义错误吗?除了你的我错过了任何进口吗?
标签: python python-3.x selenium bots linkedin