Answer the question
In order to leave comments, you need to log in
KMP, or can you please explain how the parameters of Selenium webdriver are arranged?
I climb into the official documentation , I look at how to initialize the webdriver, I do:
from selenium import webdriver
driver = webdriver.Firefox(firefox_profile='D:\\Develop\\redirect_watotg\\profile.default',
executable_path='D:\\Develop\\redirect_watotg\\Lib\\geckodriver.exe')
print(driver.firefox_profile.path)
driver.get('https://web.whatsapp.com/')
>>> C:\Users\kshnk\AppData\Local\Temp\tmp_mkfpnfj\webdriver-py-profilecopy
def __init__(self, profile_directory=None):
"""
Initialises a new instance of a Firefox Profile
:args:
- profile_directory: Directory of profile that you want to use. If a
directory is passed in it will be cloned and the cloned directory
will be used by the driver when instantiated.
This defaults to None and will create a new
directory when object is created.
"""
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
driver_options = Options()
driver_options.add_argument('-profile')
driver_options.add_argument('D:\\Develop\\redirect_watotg\\profile.default')
driver = webdriver.Firefox(options=driver_options,
executable_path='D:\\Develop\\redirect_watotg\\Lib\\geckodriver.exe',
service_args=["--marionette-port", "2828"])
print(driver.firefox_profile.path)
Traceback (most recent call last):
File "D:/Develop/redirect_watotg/main.py", line 22, in
print(driver.firefox_profile.path)
AttributeError: 'NoneType' object has no attribute 'path'
driver_options.add_argument('-headless')
from selenium import webdriver
from selenium.webdriver.firefox.options import Options, FirefoxProfile
driver_options, driver_profile = Options(), FirefoxProfile()
# driver_options.add_argument('-headless')
driver_options.add_argument('-profile')
driver_options.add_argument('D:\\Develop\\redirect_watotg\\profile.default')
driver_profile.set_preference('permissions.default.stylesheet', 2)
driver_profile.set_preference('browser.download.folderList', 2)
driver_profile.set_preference('browser.download.manager.showWhenStarting', False)
driver_profile.set_preference('browser.download.dir', 'D:\\Develop\\redirect_watotg\\Downloads')
driver_profile.set_preference("browser.download.manager.closeWhenDone", False)
driver_profile.set_preference("browser.download.manager.focusWhenStarting", False)
driver_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "video/mp4")
driver = webdriver.Firefox(options=driver_options, firefox_profile=driver_profile,
executable_path='D:\\Develop\\redirect_watotg\\Lib\\geckodriver.exe',
service_args=["--marionette-port", "2828"])
print(driver.firefox_profile.path)
driver.get('https://web.whatsapp.com/')
user_pref("permissions.default.stylesheet", 2);
user_pref("browser.download.folderList", 2);
user_pref("browser.download.manager.showWhenStarting", false);
user_pref("browser.download.dir", "D:\\Develop\\redirect_watotg\\Downloads");
user_pref("browser.download.manager.closeWhenDone", false);
user_pref("browser.download.manager.focusWhenStarting", false);
user_pref("browser.helperApps.neverAsk.saveToDisk", "video/mp4");
driver_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "video/mp4")
shutil.rmtree('D:/Develop/redirect_watotg/Profile')
shutil.copytree(profile_path, 'D:/Develop/redirect_watotg/Profile/')
Answer the question
In order to leave comments, you need to log in
In total, I found temporary measures:
1. To save the session, I copy the directory, but since some files are occupied by the process had to wrap try-except blocks. It's good that it is the files responsible for saving the session that have time to be copied, although in general the solution is so-so:
path_file = open('D:/Develop/redirect_watotg/geckodriver.log')
matches = []
for line in path_file:
if line.count('rust_mozprofile'):
matches.append(line)
profile_path = 'C:/Users/kshnk/AppData/Local/Temp/' + matches[-1].split('\"')[-2].split('\\')[-1]
print(profile_path)
shutil.rmtree('D:/Develop/redirect_watotg/Profile')
try:
shutil.copytree(profile_path, 'D:/Develop/redirect_watotg/Profile/')
except shutil.Error as e:
print(e)
after = os.listdir('D:/Downloads')
difference = set(after) - set(before)
if len(difference) == 1:
file_name = difference.pop()
print(file_name)
return file_name
else:
return False
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question