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 Show 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 Đây là mã tôi đã và đang sử dụng nhập dữ liệu ## Sẽ đưa ra lỗi cần quyền # Đọc đầu vào công thức
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 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
Sử dụng lớp ChromeOptionsBạ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 ý
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() |