Python 之 webdriver 控制网页
# 下载报表
def DowExcel():
# Google 浏览器
# options = Options()
# options.binary_location = r"****\\chrome.exe"
# prefs = {"download.default_directory":"D:\\"}
# options.add_experimental_option("prefs", prefs)
# options.add_argument("--start-maximized")
# options.add_argument("--no-sandbox")
# driver = webdriver.Chrome(options=options, executable_path=r'******\\Chromedriver.exe')
# Fir 浏览器
fp = webdriver.FirefoxProfile()
fp.set_preference('browser.download.manager.showWhenStarting', False)
fp.set_preference('browser.download.dir', 'D:\\Chrome\\')
fp.set_preference("browser.download.folderList", 2)
fp.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/x-excel')
# options.binary_location = r"******\\firefox.exe"
driver = webdriver.Firefox(
firefox_profile=fp, executable_path=r'******\\geckodriver.exe')
driver.maximize_window()
try:
driver.get('url')
time.sleep(0.5)
# driver.maximize_window()
# time.sleep(0.5)
# 登陆用户
driver.find_element_by_xpath(
'//*[@id="fs-login-content"]/div[2]/input').send_keys("username")
driver.find_element_by_xpath(
'//*[@id="fs-login-content"]/div[3]/input').send_keys('password')
driver.find_element_by_xpath('//*[@id="fs-login-btn"]').click()
time.sleep(2)
# 进入表格
driver.find_element_by_xpath(
'//*[@id="fs-frame-menu"]/div[1]/div[1]/div/ul/li/a').click()
driver.find_element_by_xpath(
'//*[@id="fs-frame-menu"]/div[1]/div[1]/div/ul/li/ul/li[6]/a').click()
time.sleep(1)
# 进入表单
ifram = driver.find_element_by_xpath(
'//*[@id="fs-frame-content"]/div/div[4]/iframe[2]')
driver.switch_to.frame(ifram)
time.sleep(5)
# 悬停下载
driver.find_element_by_xpath(
'/html/body/div[2]/table/tbody/tr/td[15]/div/div/div/em/button').click()
time.sleep(0.5)
# chrome 需要移动到指定位置
# Excel = driver.find_element_by_xpath("/html/body/div[3]/div[2]")
# time.sleep(0.5)
# ActionChains(driver).move_to_element(Excel).perform()
# time.sleep(0.5)
# firefox 浏览器需要点击一下
driver.find_element_by_xpath('/html/body/div[3]/div[2]').click()
time.sleep(1)
driver.find_element_by_xpath('/html/body/div[4]/div[2]').click()
time.sleep(2)
driver.close()
except Exception as e:
print(e)
driver.close()
DowExcel() # 失败重来