【发布时间】:2017-05-18 15:13:24
【问题描述】:
我需要自动将文件上传到使用一些 javascript 代码的网页。为此,我使用 python selenium web 驱动程序来访问网页。登录网页并浏览,直到必须上传文件的页面工作正常,但我不知道如何单击选择文件按钮。
这就是代码在我应该上传文件之前的样子:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import ui
from selenium.webdriver.support.wait import WebDriverWait
def page_is_loaded(driver):
return driver.find_element_by_tag_name("body") != None
base_url = 'https://www.xxxxxx.es/yyyyy/login.do?method=login'
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')
driver.get(base_url)
wait = ui.WebDriverWait(driver, 10)
wait.until(page_is_loaded)
username = driver.find_element_by_name('j_username')
username.send_keys('XXX')
password = driver.find_element_by_name('j_password')
password.send_keys('YYY')
accept = driver.find_element_by_name('aceptar')
accept.click()
# 'Carga de ficheros'
driver.find_element_by_xpath('//*[@id="cMI_1"]').click();
driver.find_element_by_xpath('//*[@id="cMI_1_1"]').click();
我尝试了很多方法来“单击”“选择文件”按钮,但均未成功:
driver.find_element_by_xpath('//*[@id="tablaFormulario"]/tbody/tr[6]/td[2]/input').click
driver.find_element_by_css_selector('tablaFormulario').click()
driver.find_element_by_link_text('fichero').click()
driver.find_element_by_link_text('Choose File').click()
driver.find_element_by_class_name('contCampo').click()
driver.find_elements_by_tag_name('fichero').click()
driver.find_elements_by_tag_name('contCampo').click()
我怀疑这与页面使用一些 javascript 代码运行的事实有关...任何帮助将不胜感激!
【问题讨论】:
标签: python-2.7 selenium-webdriver