Chrome is being controlled by automated test software là gì

Hello! I'm a new member here.

I've made a code here with a tool that most of you are probably familiar with; Selenium.

The code itself is working fine, but my issue is that I cannot get past the "Chrome is being controlled by automated test software"-lock in Chrome. I cannot be logged in to Google and/or Youtube due to "security reasons", because of the Selenium tool. I have looked up other forums and saw some codes were given to get around this issue,

but they were not helpful and didn't do the job for me at all.


All I want is to remain logged in to Google and Youtube as I'm executing the code.

Any help? Thank you in advance.

Also, I'm new to programming, so please make it easy for me.

from selenium import webdriver import time chrome_driver = webdriver.Chrome['D:\PycharmProjects\Refresher\chromedriver.exe'] no_of_driver = int[input["Enter number of drivers: "]] url = input["Enter URL: "] time_to_refresh = int[input["Enter refresh rate in seconds: "]] drivers = [] for i in range[no_of_driver]: drivers.append[webdriver.Chrome[executable_path="D:\PycharmProjects\Refresher\chromedriver.exe"]] drivers[i].get[url] while True: time.sleep[time_to_refresh] for i in range [no_of_driver]: drivers[i].refresh[]

Lang thang trên mạng, đọc vài bài linh tinh về kiểm thử tự động, thấy bài nào hay ho với muốn dịch thì lại dịch rồi viết lên đây, thế nên là các bài viết sẽ nhảy lung tung từ chủ đề này sang chủ đề khác. Nhưng mà nói chung cũng đều là cung cấp những kiến thức cần thiết nhất định cho bản thân mình, có thể là bây giờ chưa dùng đến, biết đâu sau này cũng ko dùng đến nữa luôn :]] nhưng mà tin là sẽ có ai đó cần dùng đến, nên cứ post tạm lên đây vậy. Hi vọng một ngày nào đó sẽ tỏa sáng 😀

Và tiếp tục chuỗi lẩu thập cẩm, bài viết này sẽ hướng dẫn chi tiết giúp bạn download, cài đặt Selenium ChromeDriver, làm sao để sử dụng ChromeDriver cho code của bạn cũng như là làm thế nào để khởi động trình duyệt Chrome sử dụng Selenium.

Version tools

Version của các tool mình sử dụng trong bài viết này bao gồm:

  • Selenium: version 3.5.3
  • Chrome Browser: version 61
  • ChromeDriver: version 2.32

ChromeDriver là gì?

Trước khi bắt đầu, ta cùng điểm qua một vài khái niệm cơ bản về ChromeDriver trước đã nhé. Thông thường mình vẫn dùng để khởi tạo một trình duyệt mới bằng cách như này:

WebDriver driver = new ChromeDriver[];

hay như này:

WebDriver driver = new FirefoxDriver[];

Ở đây, WebDriver là một công cụ mã nguồn mở trong mảng test tự động, cho phép các ứng dụng web của chúng ta có thể hoạt động trên các trình duyệt. Nó cung cấp các chức năng giúp chúng ta đi đến các địa chỉ web, nhập dữ liệu đầu vào, xử lý các code JavaScript, và rất nhiều các thao tác mà người dùng họ có thể tác động khác nữa. Và ChromeDriver là chính là công cụ giúp WebDriver thực hiện các công việc đó trên trình duyệt Chrome.

Diễn tả một cách ‘kỹ thuật’ một tý thì ChromeDriver là một máy chủ độc lập, nó giúp thực hiện truyền tải các giao thức xử lý của WebDriver tới trình duyệt Chrome.

Tải xuống Selenium ChromeDriver

ChromeDriver hiện tại thì đã có nhiều phiên bản nâng cấp khác nhau, nhưng mà vẫn khuyên các bạn nên tải về và sử dụng bản mới nhất, vì hai lý do. Một là, ở phiên bản mới nhất sẽ hỗ trợ bạn làm việc với trình duyệt Chrome phiên bản mới nhất. Hai là, ở phiên bản mới nhất thì các lỗi phát hiện ở các phiên bản trước đã được fix nên sử dụng sẽ hơn là dùng bản cũ trước đó.

Các bước để tải ChromeDriver:

1. Truy cập đường dẫn này để đi đến trang download của ChromeDriver: //sites.google.com/a/chromium.org/chromedriver/downloads

2. Ở đây sẽ là danh sách các phiên bản của ChromeDriver, tải bản nào cũng được nhưng mà như đã nói ở trên, bạn nên tải về bản mới nhất được làm to và đậm nhất như dưới này:

3. Sau đó bạn click vào link ChromeDriver 2.32, nó sẽ đưa bạn đến một trang khác như dưới này. Bạn sẽ lựa chọn một bản tương ứng với hệ điều hành trên máy cài đặt của bạn:

4. Ví dụ như máy mình đang là Window thì mình sẽ thực hiện click vào  chromedriver_win32.zip để tải về cho máy của mình.

5. Sau khi tải về thành công, bạn giải nén ra, sẽ có một file tên như này: chromedriver.exe

Thế là xong, trên đây là các bước chuẩn bị các công cụ và môi trường, bước tiếp theo là làm sao từ cái công cụ đó đưa vào trong project của chúng ta. Dưới đây mình sẽ hướng dẫn hai cách để các bạn có thể áp dụng đưa vào trong các project của mình nhé!

Cách 1: sử dụng system property webdriver.chrome.driver

Với cách này thì bạn sẽ phải thêm một dòng code vào trong code của bạn, theo các bước hướng dẫn dưới đây nha:

1. Tìm đến nơi mà bạn đã lưu file chromedriver.exe vừa giải nén để lấy ra đường dẫn của file. Ví dụ bạn tải về, sau khi giải nén để ở ổ D đường dẫn như này: D:\Drivers\chromedriver.exe, thì bây giờ là lúc sử dụng nó, bằng cách dùng System.setProperty và thêm vào trong code khởi gọi trình duyệt chrome.

2. Lúc này mình có một đoạn code để khởi chạy trình duyệt Chrome như này:

public class ChromeTest { @Test public void LaunchChrome_Method1[] { System.setProperty["webdriver.chrome.driver", "D:\\Drivers\\chromedriver.exe"]; WebDriver driver = new ChromeDriver[]; driver.get["//www.google.com"]; } }

3. Run thử đoạn code trên bạn sẽ thấy trình duyệt được khởi động lên, và điều hướng đến trang google. Và đồng thời bạn cũng sẽ nhìn thấy một message ngay phía dưới thanh địa chỉ có nội dung như này:  ‘Chrome is being controlled by automated test software’. 

Để xử lý cho ẩn dòng này, bạn sẽ cần dùng đến một method từ ChromeOptions, vậy là xong:

public class ChromeTest { @Test public void LaunchChrome_Method1[] { System.setProperty["webdriver.chrome.driver", "D:\\Drivers\\chromedriver.exe"]; ChromeOptions options = new ChromeOptions[]; options.addArguments["disable-infobars"]; WebDriver driver = new ChromeDriver[]; driver.get["//www.google.com"]; } }

Cách 2: Set property trong Environment Variable

Ở cách đầu tiên, ta sẽ xử lý và sử dụng chrome driver trong class test của từng project. Đối với cách thứ hai thì ta sẽ xử lý luôn ở trên máy tính chứa project bằng cách can thiệp vào Environment của máy. Các bước thực hiện như sau:

1. Lấy ra địa chỉ folder chứa file Chromedriver.exe vừa giải nén. Ví dụ  đường dẫn như này: D:\Drivers\chromedriver.exe, thì bạn cần lấy thông tin là D:\Drivers\

2. Tiếp theo bạn thực hiện mở của sổ Environment variable ra bằng cách, nhấp chuột phải vào My computer >> Chọn Property

3. Sau đó chọn Advanced System Settings:

4. Lúc này của sổ System property sẽ hiển thị, ở đây bạn chọn tab Advanced, rồi click vào button Environment Variable:

5. Sau khi click vào button Environment Variable, bạn sẽ cần quan tâm đến Path của các variable:

6. Chọn Path variable. Sau đó click Edit button, ở đây bạn sẽ thêm đường dẫn thư mục chứa Chromedriver vào, chính là đường dẫn ta đã lấy ở bước 1 trên đó D:\Drivers\ . Trước khi paste dòng này vào thì nhớ thêm dấu chấm phẩy vào vị trí sau cùng của biến đã có:

7. Bạn nhấn OK để hoàn tất công việc này. Từ giờ thì ChromeDriver đã được set là biến hệ thống nên bạn sẽ không cần phải thêm dòng code để gọi ChromeDriver mỗi khi tạo một project mới. Code của bạn lúc này chỉ là như thế này thôi:

public class ChromeTest { @Test public void LaunchChrome_Method1[] { ChromeOptions options = new ChromeOptions[]; options.addArguments["disable-infobars"]; //Thêm dòng code này để mở trình duyệt toàn màn hình] options.addArguments["--start-maximized"]; WebDriver driver = new ChromeDriver[]; driver.get["//www.google.com"]; } }

8. Bây giờ bạn chạy thử code trên này và kiểm tra lại nhé!

Thế là xong mấy bước cơ bản để bạn khởi động trình duyệt Chrome với hai cách khác nhau, hi vọng bài viết có thể hỗ trợ các bạn trong quá trình tự học như mình!

Bài viết tham khảo và lược dịch từ nguồn:

//www.automationtestinghub.com/selenium-chromedriver/

Video liên quan

Chủ Đề