Tùy chọn Chrome selen python

Xin chào, tôi đã cố gắng tạo một công thức python để quét web bằng Selenium, nhưng đã gặp phải lỗi này

lỗi không thể nhận biết. Chrome không khởi động được. thoát bất thường. (lỗi không thể nhận biết. Tệp DevToolsActivePort không tồn tại) (Quá trình bắt đầu từ vị trí chrome. /managed_folders/TEST_3/a4dI41U2/chromedriver không còn chạy nữa, vì vậy ChromeDriver giả định rằng Chrome đã gặp sự cố. )

Tôi đã thêm chromedriver làm đầu vào cho mã và đây là các thư viện trong môi trường của tôi

selen
chromedriver-py
trình quản lý web
chromedriver-binary-auto
chromedriver-nhị phân

Đây là mã tôi đã và đang sử dụng

nhập dữ liệu
nhập gấu trúc dưới dạng pd, numpy dưới dạng np
từ dataiku nhập pandasutils dưới dạng pdu
từ Selenium nhập webdriver
từ selen. webdriver. trình duyệt Chrome. nhập tùy chọn Tùy chọn

## Sẽ đưa ra lỗi cần quyền
#từ webdriver_manager. nhập chrome ChromeDriverManager
#driver = trình điều khiển web. Chrome(Trình quản lý ChromeDriver(). Tải về())

# Đọc đầu vào công thức
chrome_driver = dataiku. Thư mục("a4dI41U2")
chrome_driver_info = chrome_driver. nhận thông tin()
driver_path = chrome_driver. get_path() + '/ chromedriver'


# Tính toán đầu ra công thức
chrome_options = Tùy chọn()
chrome_options. binary_location = driver_path
chrome_options. add_argument('--no-sandbox')
chrome_options. add_argument('--không đầu')
chrome_options. add_argument("--disable-dev-shm-usage")
chrome_options. add_argument("--disable-extensions")
trình điều khiển = webdriver. Chrome(executable_path=driver_path, chrome_options=chrome_options)
tài xế. từ bỏ()

Tôi nên làm gì để giải quyết lỗi?

Cảm ơn trước

Chúng tôi có thể chuyển các tùy chọn cho trình điều khiển Selenium Chrome bằng Python. Điều này có thể nhờ sự trợ giúp của lớp ChromeOptions và DesiredCapabilities. Đối với ChromeOptions, chúng ta phải tạo một đối tượng cho lớp đó

Sau đó, chúng tôi sẽ nhờ sự trợ giúp của phương thức add_argument và chuyển tùy chọn mà chúng tôi muốn gửi tới trình duyệt dưới dạng tham số cho phương thức. Cuối cùng, thông tin này phải được cung cấp cho trình điều khiển web

Thí dụ

Triển khai mã

from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOptions
#object of ChromeOptions
op = webdriver.ChromeOptions()
#add option
op.add_argument('--enable-extensions')
#pass option to webdriver object
driver = webdriver.Chrome(chrome_options=op)

Chúng tôi cũng có thể thêm các khả năng với sự trợ giúp của lớp DesiredCapabilities

Triển khai mã

#object of DesiredCapabilities
c = webdriver.DesiredCapabilities.Chrome.copy()

#set capability to True
c['acceptInsecureCerts'] = True
#pass capability to webdriver object
driver = webdriver.Chrome(desired_capabilities=c)

Bằng cách này, chúng tôi có thể vượt qua các tùy chọn Chrome

Tùy chọn Chrome selen python


Tùy chọn Chrome selen python

Khả năng là các tùy chọn mà bạn có thể sử dụng để tùy chỉnh và định cấu hình phiên ChromeDriver. Trang này ghi lại tất cả các khả năng được ChromeDriver hỗ trợ và cách sử dụng chúng

API ngôn ngữ WebDriver cung cấp các cách để chuyển khả năng sang ChromeDriver. Cơ chế chính xác khác nhau tùy theo ngôn ngữ, nhưng hầu hết các ngôn ngữ đều sử dụng một hoặc cả hai cơ chế sau

  1. Sử dụng lớp ChromeOptions. Điều này được hỗ trợ bởi Java, Python, v.v.

  2. Sử dụng lớp DesiredCapabilities. Điều này được hỗ trợ bởi Python, Ruby, v.v. Mặc dù nó cũng có sẵn trong Java, nhưng việc sử dụng nó trong Java không được dùng nữa

Sử dụng lớp ChromeOptions

Bạn có thể tạo phiên bản ChromeOptions, phiên bản này có các phương pháp thuận tiện để cài đặt các chức năng dành riêng cho ChromeDriver. Sau đó, bạn có thể chuyển đối tượng ChromeOptions vào hàm tạo ChromeDriver

Tùy chọn ChromeOptions = ChromeOptions mới();

tùy chọn. addExtensions(Tệp mới("/đường dẫn/đến/phần mở rộng. crx"));

Trình điều khiển ChromeDriver = ChromeDriver mới (tùy chọn);

Kể từ Selenium phiên bản 3. 6. 0, lớp ChromeOptions trong Java cũng triển khai giao diện Khả năng, cho phép bạn chỉ định các khả năng WebDriver khác không dành riêng cho ChromeDriver

Tùy chọn ChromeOptions = ChromeOptions mới();

// Thêm khả năng proxy WebDriver

Proxy proxy = Proxy mới();

Ủy quyền. setHttpProxy("myhttpproxy. 3337");

tùy chọn. setCapability("proxy", proxy);

// Thêm chức năng dành riêng cho ChromeDriver

tùy chọn. addExtensions(Tệp mới("/đường dẫn/đến/phần mở rộng. crx"));

Trình điều khiển ChromeDriver = ChromeDriver mới (tùy chọn);

Sử dụng DesiredCapabilities

Để sử dụng DesiredCapabilities, bạn cần biết tên của khả năng và loại giá trị mà nó nhận. Xem thêm danh sách đầy đủ bên dưới

con trăn

mũ = webdriver. Khả năng mong muốn. TRÌNH DUYỆT CHROME. sao chép()

caps['acceptInsecureCerts'] = Đúng

trình điều khiển = webdriver. Chrome(desired_capabilities=caps)

hồng ngọc

mũ = Selen. Trình điều khiển web. Xa. khả năng. trình duyệt Chrome(

"Google. chromeOptions" => {"args" => [ "window-size=1000,800" ]})

trình điều khiển = Selenium. Trình điều khiển web. vì. chrome, mong muốn_capabilities. mũ lưỡi trai

Sử dụng hồ sơ tùy chỉnh (còn được gọi là thư mục dữ liệu người dùng)

Theo mặc định, ChromeDriver sẽ tạo một hồ sơ tạm thời mới cho mỗi phiên. Đôi khi, bạn có thể muốn đặt các tùy chọn đặc biệt hoặc chỉ sử dụng hoàn toàn một cấu hình tùy chỉnh. Nếu trước đây, bạn có thể sử dụng 'chrome. prefs' (được mô tả sau bên dưới) để chỉ định các tùy chọn sẽ được áp dụng sau khi Chrome khởi động. Nếu là cái sau, bạn có thể sử dụng công tắc dòng lệnh của Chrome user-data-dir để cho Chrome biết nên sử dụng cấu hình nào

Tùy chọn ChromeOptions = ChromeOptions mới();

tùy chọn. addArguments("user-data-dir=/path/to/your/custom/profile");

Bạn có thể tạo hồ sơ tùy chỉnh của riêng mình chỉ bằng cách chạy Chrome (trên dòng lệnh hoặc thông qua ChromeDriver) với công tắc user-data-dir được đặt thành một số thư mục mới. Nếu đường dẫn không tồn tại, Chrome sẽ tạo một hồ sơ mới ở vị trí đã chỉ định. Sau đó, bạn có thể sửa đổi cài đặt cấu hình theo ý muốn và ChromeDriver có thể sử dụng cấu hình này trong tương lai. mở chrome. //phiên bản trong trình duyệt để xem cấu hình Chrome đang sử dụng

Bắt đầu tối đa hóa Chrome

Tùy chọn ChromeOptions = ChromeOptions mới();

tùy chọn. addArguments("bắt đầu tối đa hóa");

Sử dụng tệp thực thi của Chrome ở vị trí không chuẩn

Tùy chọn ChromeOptions = ChromeOptions mới();

tùy chọn. setBinary("/path/to/other/chrome/binary");

Chặn cửa sổ pop-up

Theo mặc định, ChromeDriver định cấu hình Chrome để cho phép các cửa sổ bật lên. Nếu bạn muốn chặn cửa sổ bật lên (tôi. e. , khôi phục hoạt động bình thường của Chrome khi không được ChromeDriver kiểm soát), hãy làm như sau

Tùy chọn ChromeOptions = ChromeOptions mới();

tùy chọn. setExperimentalOption("loại trừ Công tắc",

Mảng. asList("vô hiệu hóa chặn cửa sổ bật lên"));

Đặt thư mục tải xuống

Đoạn mã sau có thể được sử dụng để định cấu hình Chrome tải tệp xuống một thư mục cụ thể. Tuy nhiên, có một số lưu ý cần lưu ý

  • Chrome không cho phép sử dụng một số thư mục nhất định để tải xuống. Đặc biệt, bạn không thể sử dụng thư mục máy tính để bàn làm thư mục tải xuống. Trên Linux, bạn cũng không thể sử dụng thư mục chính để tải xuống. Vì danh sách chính xác các thư mục bị cấm có thể thay đổi, nên bạn nên sử dụng một thư mục không có ý nghĩa đặc biệt đối với hệ thống

  • ChromeDriver không tự động đợi quá trình tải xuống hoàn tất. Nếu bạn gọi tài xế. thoát () quá sớm, Chrome có thể kết thúc trước khi quá trình tải xuống hoàn tất

  • Đường dẫn tương đối không phải lúc nào cũng hoạt động. Để có kết quả tốt nhất, hãy sử dụng đường dẫn đầy đủ thay thế

  • Trên Windows, Sử dụng "\" làm dấu phân cách đường dẫn. Sử dụng "/" không đáng tin cậy trên Windows

Tùy chọn ChromeOptions = ChromeOptions mới();

Mapprefs = HashMap mới();

prefs. đặt ("tải xuống. default_directory", "/directory/path");

tùy chọn. setExperimentalOption("prefs", prefs);

Vui lòng xem tài liệu về Selenium và tiêu chuẩn W3C WebDriver để biết các khả năng tiêu chuẩn được ChromeDriver chấp nhận. Ở đây chúng tôi chỉ liệt kê các khả năng dành riêng cho Chrome

Hầu hết các khả năng dành riêng cho Chrome được hiển thị thông qua đối tượng ChromeOptions. Trong một số ngôn ngữ, điều này được triển khai bởi lớp ChromeOptions. Trong các ngôn ngữ khác, chúng được lưu trữ dưới goog. từ điển chromeOptions trong khả năng mong muốn

Các tùy chọn Chrome trong Selenium Python là gì?

Tùy chọn
người thi hành
người nghe
Dịch vụ
Trình điều khiển web từ xa

Tùy chọn Chrome trong Selenium là gì?

ChromeOptions trong Selenium WebDriver là gì? . Lớp này kế thừa lớp MutableCapabilities. a class in Selenium which is used to set the capability and customization and configuration of the ChromeDriver session as well. This class inherits the MutableCapabilities class.

Làm cách nào để đặt các khả năng của Chrome trong Selenium?

Để khai báo các Khả năng mong muốn trong thử nghiệm tự động hóa Selenium bằng Grid, chúng ta có thể sử dụng phương thức setCapability từ lớp DesiredCapabilities để thiết lập các loại khả năng khác nhau của trình duyệt (Ví dụ:. Tên nền tảng Chrome, IE, Firefox, Edge) (Ví dụ. Windows, macOS, v.v. )

Selenium python xử lý cảnh báo Chrome như thế nào?

từ Selenium nhập webdriver
từ selen. webdriver. phổ thông. nhập cảnh báo Cảnh báo
trình điều khiển = webdriver. Chrome('D. \\ chromedriver. exe')
tài xế. lấy ('url')
cảnh báo = Cảnh báo (trình điều khiển)
in (cảnh báo. chữ)
báo động. Chấp nhận()
báo động. bỏ qua()