У меня есть код ниже, который отлично работает, чтобы перемещаться по 3 страницам и нажать ссылку, чтобы загрузить файл .csv в Firefox. Но, используя настройки профиля, я не могу загрузить его автоматически. Любая помощь, пожалуйста. Я установил настройки профиля при запуске, это правильно ...?
from lib2to3.pgen2 import driver
from selenium import webdriver
import unittest
from webbrowser import browser
from selenium.webdriver.common.keys import Keys
import selenium
import time
class UnitTestExample(unittest.TestCase):
def setUp(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "C:\Python34")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
self.driver = webdriver.Firefox(firefox_profile=profile) # note that this creates a class instance variable
self.driver.implicitly_wait(30) # when testing AJAX this would not be used
self.base_url = "https://webtac.industrysoftware.automation.siemens.com/webpr/webpr.php?objtype=frames&g_userid=fddd&g_session_id=7311876" # sets up another class instance variable
self.verificationErrors = []
def testWebSite1(self): # a first test case there can be others
driver = self.driver # class instance variable used here
driver.get(
"https://webtac.industrysoftware.automation.siemens.com/webpr/webpr.php?objtype=frames&g_userid=a3rgcw&g_session_id=7311876")
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("username")
password.send_keys("password")
### driver.find_element_by_class_name("btn btn-primary").send_keys("\n")
driver.find_element_by_xpath('//button[@type="submit"]').submit()
time.sleep(30)
# Call java fuction and web page loads
driver.execute_script('javascript:parent.gotoSearch(\'advanced\')')
# Add below dates in input fields
time.sleep(10)
driver.switch_to.frame(0)
time.sleep(10)
openf = driver.find_element_by_id("openedFrom_dateText")
opent = driver.find_element_by_id("openedTo_dateText")
openf.clear();
openf.send_keys("01-Jan-2015")
opent.clear();
opent.send_keys("02-Jan-2015")
time.sleep(20)
# Print status
print(driver.current_url)
window_before = driver.window_handles[0]
print(window_before)
#Button click
driver.find_element_by_xpath('//input[@type="button"]').click()
time.sleep(10)
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
print(driver.current_url)
driver.find_element_by_link_text("[Comma-Delimited Text (CSV)]").click()
print(window_after)
time.sleep(10)
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__": # allows unittest to start by running this class file
unittest.main() # start the main method of unittest