首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python上传照片

用Python上传照片
EN

Stack Overflow用户
提问于 2017-11-08 06:22:23
回答 3查看 312关注 0票数 0

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

代码语言:javascript
复制
photo = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="ButtonChangePhoto"]')))
photo.send_keys('/home/nataliya/Desktop/puppy.jpg')

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

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

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

发布于 2017-11-08 07:15:02

根据我使用selenium的经验,您真的需要将它指向您要发送密钥的地方。在您的示例中,您将photo设置为一个按钮。您不能将文本发送到按钮。您需要找到文本框并将文本发送到文本框。然后,您将需要发送一个点击按钮。

代码语言:javascript
复制
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()

从您提供的信息来看,这似乎可以帮助您找到正确的方向。

票数 0
EN

Stack Overflow用户

发布于 2017-11-08 11:40:16

在使用send_keys时,您面对的是unknown error: cannot focus element,请尝试使用action_chains,如下所示:

代码语言:javascript
复制
actions = ActionChains(driver)
actions.move_to_element(photo)
actions.click(photo)
actions.send_keys('/home/nataliya/Desktop/puppy.jpg')
actions.perform()
票数 0
EN

Stack Overflow用户

发布于 2017-11-15 16:54:34

简单地说,您可以使用以下代码

代码语言:javascript
复制
driver.find_element_by_id("Locator").send_keys(os.getcwd()+"/image.png")

您可以使用任何定位器

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47168399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档