I'm facing the following problem.
I'm trying to execute the code:
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.options import Options
And when I try to run it, the following error is returned:
Exception has occurred: ImportError cannot import name 'Options' from 'selenium.webdriver.common.options'
I've checked other threads but none of them helped me.
I uninstalled selenium and installed again. Also, I double-checked to see if my file name wasn't selenium.py.
Can someone help me on that?
Thank you.
This does not seem like an installation issue.
I presume you mean to write this.
from selenium.webdriver.chrome.options import Options
or
from selenium.webdriver.firefox.options import Options
Related
enter image description hereI made a parser which is working OK in Pycharm, have no troubles and debagger also shows nothing. But when I make an .exe file (I am using pyinstaller to do that) I have some trash in CMD. Script is working OK but this trash is looking awful. Maybe someone can tell me where is the problem
I used this earlier,
from webdriver_manager.chrome import ChromeDriverManager
but now my imports are looking like that:
import csv
import time
from time import sleep as pause
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium import webdriver
import urllib.request
I am using the code in PyCharm as suggested here: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
but when I do that, I get an error message saying selenium module not found. But the first line of code works, which is also based on the selenium module. Also, I have added selenium as a Python interpreter. I am totally new to this.
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.Chrome.service import Service
s = Service('C:\\Users\\...\\chromedriver.exe')
driver = webdriver.Chrome(service=s)
The module is selenium.webdriver.chrome.service
You need to replace the C (in uppercase) with c (in lowercase) and the effective line of import will be:
from selenium.webdriver.chrome.service import Service
Trying to run selenium script with targeted chrome profile. But once I run the script, it won't start with the targeted profile but with a new profile. Here's my code:
# import selenium common driver
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time
# for specified chrome profile
from selenium.webdriver.chrome.options import Options
# wait page until targeted element loaded
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
# undetectable module
import undetected_chromedriver.v2 as uc # use pip install undetected-chromedriver
if __name__ == '__main__':
options = uc.ChromeOptions()
# another way to set profile is the below (which takes precedence if both variants are used
options.add_argument(r'--user-data-dir=C:\Users\Fadli\AppData\Local\Google\Chrome\User Data\Profile 4')
# just some options passing in to skip annoying popups
options.add_argument(r'--no-first-run --no-service-autorun --password-store=basic')
driver = uc.Chrome(options=options) # version_main allows to specify your chrome version instead of following chrome global version
driver.get('https://nowsecure.nl')
Try the below line if it help
# another way to set profile is the below (which takes precedence if both variants are used
options.add_argument(r'--user-data-dir=C:\Users\Fadli\AppData\Local\Google\Chrome\User Data')
options.add_argument(r'--profile-directory=Profile 4')
you can check it here for more reference
How to use undetected_chromedriver.v2 in kali linux
import undetected_chromedriver.v2 as uc
options = uc.ChromeOptions()
# setting profile
options.user_data_dir = "c:\\temp\\profile"
# another way to set profile is the below (which takes precedence if both variants are used
options.add_argument('--user-data-dir=c:\\temp\\profile2')
# just some options passing in to skip annoying popups
options.add_argument('--no-first-run --no-service-autorun --password-store=basic')
bw = uc.Chrome(options=options, version_main=92)
If you are on selenium4 then using undetected_chromedriver.v2 you will face an error as:
TypeError: __init__() got an unexpected keyword argument 'service'
which is inline as per the status:
July 2021: Currently busy implementing selenium 4 for undetected-chromedriver
However with selenium4 you can still use the undetected_chromedriver v1 as follows:
import undetected_chromedriver as uc
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
options = uc.ChromeOptions()
options.add_argument("start-maximized")
s = Service('C:\\BrowserDrivers\\chromedriver.exe')
driver = uc.Chrome(service=s, options=options)
driver.get('https://datadome.co/customers-stories/toppreise-ends-web-scraping-and-content-theft-with-datadome/')
driver.save_screenshot('datadome_undetected_webddriver.png')
References
You can find a couple of relevant detailed discussions in:
Undetected Chromedriver not loading correctly
Evade detection of selenium automation
I have a windows64 bit machine and I downloaded the chromedriver on the exact location it is supposed to be and my file path is this:
'C:\Users\username\AppData\Local\Google\Chrome\Application\chrome.exe\chromedriver'
Then I wrote this code:
import selenium
from selenium import webdriver
driver=webdriver.Chrome('C:\Users\pushp\AppData\Local\Google\Chrome\Application\chrome.exe\chromedriver')
However, I am getting a file not found error and also this message -
'Message: 'chromedriver' executable needs to be in PATH.'
How do I fix this?
driver =webdriver.Chrome(r'C:\Users\pushp\AppData\Local\Google\Chrome\Application\chrome.exe\chromedriver.exe')
Just need to add .exe
Set it like the following
import selenium
from selenium import webdriver
webdriver.Chrome(executable_path=r"C:\Users\pushp\AppData\Local\Google\Chrome\Application\chromedriver.exe")
Or
webdriver.Chrome(executable_path="C:\\Users\\pushp\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe")
You can also install pip install webdriver-manager then run the following code which will install the correct webdriver for you
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())