因此,每当我尝试通过添加来使用我的Chrome设置(我在默认浏览器中使用的设置)
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\... (my webdriver path)")
driver = webdriver.Chrome(executable_path="myPath", options=options)
它向我显示错误代码
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes n 16-17: truncated \UXXXXXXXX escape
以我的重击。我不知道这意味着什么,我很乐意得到任何帮助。预先感谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
根据您的问题和代码试用,如果您想打开 Chrome浏览器会话,则可以使用以下选项:
要使用默认的 Chrome配置文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="#fffff">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_white"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/futura_medium"
android:text="Have you selected the right location ?"
android:textColor="@color/colorSection"
android:textSize="@dimen/text_sizes_medium" />
<View
android:layout_width="match_parent"
android:layout_height="10dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/futura_medium"
android:lineSpacingExtra="4dp"
android:text="Your selected location seems to be little far off from your device location"
android:textColor="@color/colorTextPrimery"
android:textSize="@dimen/text_sizes_medium" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/text_no_thanks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/futura_medium"
android:gravity="center"
android:text="NO THANKS"
android:textColor="@color/colorTextPrimery"
android:textSize="@dimen/text_sizes_smaller" />
<View
android:layout_width="20dp"
android:layout_height="match_parent" />
<TextView
android:id="@+id/text_change_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:background="@drawable/selector_ligt_to_dark_no_radius"
android:fontFamily="@font/futura_medium"
android:gravity="center"
android:padding="6dp"
android:text="CHANGE LOCATION"
android:textColor="@color/color_white"
android:textSize="@dimen/text_sizes_smaller" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="60dp"
android:background="@android:color/transparent"
android:src="@drawable/arrow_white" />
</FrameLayout>
注意:您的默认Chrome配置文件将包含许多书签,扩展名,主题,cookie等。 Selenium 可能无法加载。因此,按照最佳做法,为您的 @Test 创建一个新的 chrome配置文件,并在配置文件中存储/保存/配置所需的数据。
要使用自定义的 Chrome配置文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\Default")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
答案 2 :(得分:1)
这就是我设法在 php selenium webdriver 中使用 EXISTING CHROME PROFILE 的方式。 配置文件 6 不是我的默认配置文件。我不知道如何运行默认配置文件。重要的是不要在 chrome 选项参数之前添加 -- !选项的所有其他变体都不起作用!
<?php
//...
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments([
'user-data-dir=C:/Users/MyUser/AppData/Local/Google/Chrome/User Data',
'profile-directory=Profile 6'
]);
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $chromeOptions);
$driver = RemoteWebDriver::create($host, $capabilities, 100000, 100000);
要获取 chrome 配置文件的名称,请转到 chrome://settings/manageProfile,单击配置文件图标,然后单击“在我的桌面上显示配置文件快捷方式”。之后右键单击桌面配置文件图标并转到属性,在这里您将看到类似“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”--profile-directory="Profile 6"。
此外,我建议您在运行此代码之前关闭所有 chrome 实例。此外,您可能还需要关闭 Chrome 设置 > 高级 > 系统 >“Google Chrome 关闭时继续运行后台应用程序”。
答案 3 :(得分:1)
接受的答案是错误的。这是官方的正确方法:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument(r"--user-data-dir=C:\path\to\chrome\user\data") #e.g. C:\Users\You\AppData\Local\Google\Chrome\User Data
options.add_argument(r'--profile-directory=YourProfileDir') #e.g. Profile 3
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
要在 Windows 上找到配置文件文件夹,请右键单击您要使用的 Chrome 配置文件的桌面快捷方式,然后转到属性 -> 快捷方式,您将在“目标”文本框中找到它。
答案 4 :(得分:0)
请确保您已找到配置文件的正确路径,并且在所述路径中将转义反斜杠加倍。
例如,通常Windows上的默认配置文件位于:
"C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\Default"
答案 5 :(得分:0)
您确定要在user-data-dir参数中放入webdriver路径吗?这通常是您放置chrome配置文件的位置,例如“ C:\ Users \您的用户名\ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \”。另外,您将需要在目录路径中使用双反斜杠或正斜杠(两者均可)。您可以使用os库测试您的路径是否有效 例如
import os
os.list("C:\\Users\\yourusername\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1")
将为您提供目录列表。
我也许还会偶尔添加一点,如果您在使用指定用户配置文件运行webdriver时设法使chrome崩溃,它似乎记录了配置文件中的崩溃,并且下次打开chrome时,您会收到Chrome浏览器提示还原页面的提示它异常退出后。就我个人而言,这有点令人头疼,并且由于此原因,我不再将用户配置文件与chromedriver一起使用。我找不到解决方法。其他人已经在这里报告过,但是他们的解决方案似乎都不适合我,或者不适合我的测试用例。 https://superuser.com/questions/237608/how-to-hide-chrome-warning-after-crash 如果您不指定用户个人资料,则似乎每次运行时都会创建一个新的(空白)临时文件