因此,每当我尝试使用 Chrome 设置(我在默认浏览器中使用的设置)时,添加
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\... (my webdriver path)")
driver = webdriver.Chrome(executable_path="myPath", options=options)
Run Code Online (Sandbox Code Playgroud)
它向我展示了错误代码
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes n 16-17: truncated \UXXXXXXXX escape
Run Code Online (Sandbox Code Playgroud)
在我的 bash 中。我不知道这意味着什么,如果我能得到任何帮助,我会很高兴。提前致谢!
python selenium google-chrome selenium-chromedriver chrome-profile
我一直在写的剧本一直工作得很好。我刚刚添加了该选项,因此它将使用此代码在 chrome 上打开一个配置文件。
options = webdriver.ChromeOptions
browser = webdriver.Chrome(executable_path=r"C:\Users\princess\AppData\Local\Programs\Python\Python36-32\chromedriver.exe", chrome_options=options)
options.add_argument(r'user-data-dir=C:\Users\princess\AppData\Local\Google\Chrome\User Data')
options.add_argument('--profile-directory=Profile 1')
Run Code Online (Sandbox Code Playgroud)
使用时,我收到此错误代码。
C:\Users\Princess\Desktop>CHBO.py
Traceback (most recent call last):
File "C:\Users\Princess\Desktop\CHBO.py", line 12, in <module>
browser = webdriver.Chrome(executable_path=r"C:\Users\princess\AppData\Local\Programs\Python\Python36-32\chromedriver.exe", chrome_options=options)
File "C:\Users\Princess\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 59, in __init__
desired_capabilities = options.to_capabilities()
TypeError: to_capabilities() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
python selenium google-chrome selenium-chromedriver chrome-profile
每次我登录新的 Gmail 帐户时,都会弹出一个窗口,询问我是否要创建新的 Chrome 配置文件,这有时会让人非常恼火。有办法禁用它吗?
在chrome://flags/选项中有几个选项(新的配置文件选择器和登录的配置文件创建流程)我认为可以工作,但我不太确定,因为我不想在广泛使用它时弄乱 chrome 配置文件设置。
我正在尝试使用默认用户使用 selenium python 库打开网页,脚本使用默认用户至关重要,但如果我的 chrome 浏览器已经打开脚本崩溃并给我这个错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这里给出的所有解决方案:
如果打开另一个 chrome 实例,Selenium chromedriver 将不会启动 URL
Selenium 不会在新选项卡中打开新 URL(Python 和 Chrome)
并阅读旧版 chromedriver 版本中存在错误,但已在 chrome 74(我正在使用)中修复:https : //github.com/SeleniumHQ/docker-selenium/issues/741
from selenium import webdriver
import time
from getpass import getuser
def run():
# Chrome driver path
chromedriver = r'C:\Users\user1\Downloads\chromedriver_win32\chromedriver_new.exe'
# Get chrome webdriver options and set open the browser as headless …Run Code Online (Sandbox Code Playgroud) python selenium google-chrome selenium-chromedriver chrome-profile
有人告诉我,我的脚本阻塞了客户站点上的主线程。
它被标记为<script async...>所以它不应该是一个网络块。
我运行了 Chrome 分析器,尽管在谷歌上搜索了解释,但我真的不明白我在看什么。
不明白整个蓝块的哪一部分是“线程阻塞部分”
从第一张图像开始,“细线”从大约 500 毫秒到大约 900 毫秒,大约是 400 毫秒的时间,但在自下而上的表中,它表示“评估脚本”的总时间为 184.5 毫秒。
那么我可以假设脚本的“阻塞”时间应该取自自下而上的表,达到 184.5 毫秒?
javascript performance google-chrome google-chrome-devtools chrome-profile
虽然我看到了一些相关的问题,但我再次提出这个问题,因为我仍然面临这个问题。我有一个网站,在首次登录时要求输入登录验证码,然后在以后的登录实例中不再询问。如果我不使用自定义浏览器配置文件,则每次 selenium 运行登录时,该网站都会询问验证码。因此我使用了如下自定义的浏览器配置文件(这不是问题)
options.addArguments("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\default");
Run Code Online (Sandbox Code Playgroud)
然后,测试完成后,我使用退出浏览器
driver.quit();
Run Code Online (Sandbox Code Playgroud)
问题是,下次我再次运行测试时,Chrome 浏览器将打开并弹出“恢复页面?Chrome 未正确关闭”的消息。登录后该网站再次要求输入验证码。输入验证码不是我的脚本的一部分,因此脚本失败。然后我通过单击顶角的 X 手动关闭浏览器。然后我再次运行测试,chrome浏览器正常打开,没有弹出窗口,并且网站不要求验证码,登录成功。然后,脚本通过 driver.quit() 关闭浏览器本身。然后我再次运行测试,chrome 浏览器打开并弹出窗口,测试再次失败。这表明 driver.quit() 没有正确关闭浏览器。我已经尝试了几种设置,但仍然弹出窗口。
"exit_type":"none"(以及“正常”)和exit cleanly = true如何确保在上次测试运行中 driver.quit() 关闭浏览器后,浏览器每次都能正常打开?请帮忙。
下面是我的代码:我使用 chrome 扩展,所以我也无法禁用扩展。
String extFilePath = "C:\\ChromeDriver\\Salesforce_inspector.crx";
System.setProperty("webdriver.chrome.driver","C:\\chromedriver\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File(extFilePath));
options.addArguments("--disable-notifications");
options.addArguments("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\default");
options.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(options);
try
{
driver.switchTo().alert();
System.out.println("alert accepted");
} // try
catch (NoAlertPresentException Ex)
{
System.out.println("No alert");
}
driver.get("salesforce url");
Run Code Online (Sandbox Code Playgroud)
我不想使用隐身模式,因为我需要保留cookie和密码,以防止前面提到的登录验证码问题。
我正在尝试使用 selenium 在 python 中制作一个脚本,它将打开一个网站并单击一个按钮。问题是我必须先关闭 chrome,然后才能运行脚本,否则我会收到此错误:
Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,这样我就不必在每次运行脚本之前关闭 chrome?
我的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:/Users/username/AppData/Local/Google/Chrome/User Data")
driver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\chromedriver.exe', chrome_options=options)
driver.get("https://disboard.org/sv/dashboard/servers")
link = driver.find_element_by_link_text("bump")
link.click()
Run Code Online (Sandbox Code Playgroud) python selenium google-chrome selenium-chromedriver chrome-profile