我尝试使用代码上传头像(我使用的是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)
答案 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()
:返回当前工作目录