用Python上传照片

时间:2017-11-07 22:22:23

标签: python selenium

我尝试使用代码上传头像(我使用的是Python和Linux操作系统):

photo = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="ButtonChangePhoto"]')))
photo.send_keys('/home/nataliya/Desktop/puppy.jpg')

但我面临的问题 - 头像保持不变。 问题:这里有什么不正确的?

更新: 这是我在Chrome上遇到的错误:

Traceback (most recent call last):

WebDriverException: Message: unknown error: cannot focus element
(Session info: chrome=62.0.3202.75)
(Driver info: chromedriver=2.33.506092   (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.10.0-38-generic x86_64)

3 个答案:

答案 0 :(得分:0)

根据我对硒的经验,你真的需要把它指向你要发送钥匙的地方。在您的示例中,您将photo设置为按钮。您无法将文字发送到按钮。您需要找到文本框并将文本发送到文本框。然后,您需要发送一个单击按钮。

text_area = driver.find_element_by_name('text_area_name')
text_area.send_keys('text to send to the text area')

button = driver.find_element_by_class_name('button')
button.click()

根据您提供的信息,这似乎可以帮助您指明正确的方向。

答案 1 :(得分:0)

使用send_keys时,您unknown error: cannot focus element尝试使用action_chains,如下所示:

actions = ActionChains(driver)
actions.move_to_element(photo)
actions.click(photo)
actions.send_keys('/home/nataliya/Desktop/puppy.jpg')
actions.perform()

答案 2 :(得分:0)

只需使用此

即可
driver.find_element_by_id("Locator").send_keys(os.getcwd()+"/image.png")

您可以使用任何定位器

os.getcwd():返回当前工作目录