Hướng dẫn call javascript function selenium python - gọi hàm javascript selenium python

Tôi có một hàm gọi là 'CheckData (mã)' trong JavaScript, như bạn có thể thấy, lấy một đối số gọi là 'mã' để chạy và trả về chuỗi 15 Char.

Vì vậy, tôi đã tìm ra (và đã thử nghiệm) cách gọi các hàm không đối thủ trong JavaScript, nhưng vấn đề của tôi là khi tôi gọi cho CheckData (mã), tôi luôn nhận được giá trị trả về 'không'. Đây là những gì tôi đang làm cho đến nay:

wd = webdriver.Firefox()
wd.get('My Webpage')
a = wd.execute_script("return checkdata()", code)  //Code is a local variable
                                                   //from my python script
print a

Tôi đang làm điều này, vì tôi đã đọc nó trên một tài liệu selen không chính thức và ở đây: Liên kết

Nhưng, như tôi đã nói trước đây, tôi chỉ tiếp tục không được in.

Làm thế nào tôi có thể gọi chức năng của tôi vượt qua tham số đó?


Chúng ta có thể thực hiện chức năng JavaScript trong Python với Selenium WebDriver. DOM tương tác với các yếu tố thông qua JavaScript. Selenium có khả năng thực thi các lệnh JavaScript bằng phương thức EXECE_SCRIPT.execute_script method.

Rất ít hành động như cuộn web không thể được thực hiện trực tiếp bởi Selenium. Đối với điều này, chúng tôi sẽ sử dụng JavaScript Executor. Chúng ta sẽ nhận trợ giúp của cửa sổ lệnh JavaScript.Scrollto và chuyển nó sang phương thức Execute_Script. Để cuộn xuống cuối trang, chúng ta phải vượt qua 0 và document.body.scrollHeight làm tham số cho window.scrollto.JavaScript Executor. We shall take the help of the JavaScript command window.scrollTo and pass it to the execute_script method. To scroll to the bottom of the page, we have to pass 0 and document.body.scrollHeight as parameters to the window.scrollTo.

Cú pháp

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

Thí dụ

from selenium import webdriver
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
#scroll till page bottom
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);)

Chúng tôi cũng có thể thực hiện hành động web như nhấp vào liên kết với JavaScript. Ở đây, chúng tôi cũng sẽ sử dụng phương thức Execute_Script và chuyển các đối số với chỉ mục và phần tử làm tham số cho phương thức đó.arguments with index and element as parameters to that method.

Cú pháp

e = driver.find_element_by_css_selector(".cls")
driver.execute_script("arguments[0].click();",e)

Thí dụLibrary on the page.

Hướng dẫn call javascript function selenium python - gọi hàm javascript selenium python

Thí dụ

from selenium import webdriver
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")
driver.implicitly_wait(0.8)
driver.get("https://www.tutorialspoint.com/index.htm")
# to identify element
l = driver.find_element_by_xpath("//*[text()='Library']")
#click with execute_script
driver.execute_script("arguments[0].click();",l)
print("Page title after click: " + driver.title)

Chúng tôi cũng có thể thực hiện hành động web như nhấp vào liên kết với JavaScript. Ở đây, chúng tôi cũng sẽ sử dụng phương thức Execute_Script và chuyển các đối số với chỉ mục và phần tử làm tham số cho phương thức đó.

Hướng dẫn call javascript function selenium python - gọi hàm javascript selenium python

Hướng dẫn call javascript function selenium python - gọi hàm javascript selenium python

Hãy để chúng tôi nhấp vào thư viện liên kết trên trang.

  • Đầu ra
  • Cập nhật vào ngày 01 tháng 2 năm 2021 12:00:11
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để thực hiện JavaScript bằng Selenium trong Python?
  • Làm thế nào để bạn sử dụng selenium để thực hiện javascript trong một khung?
  • Làm thế nào để thực hiện chức năng JavaScript bằng cách sử dụng tên của nó trong một biến?
  • Làm thế nào để nhấp vào liên kết với một người thực thi JavaScript trong selenium với Python?
  • Làm thế nào để nhấp vào một nút với JavaScript Executor trong selenium với Python?
  • Làm thế nào để trích xuất văn bản từ cảnh báo JavaScript trong selenium với Python?
  • Làm thế nào để thực hiện hàm JavaScript khi tôi có tên của nó dưới dạng chuỗi?
  • Làm thế nào để thực hiện một tệp python trong shell python?
  • Làm thế nào để thực hiện cuộn dọc của một trang web với JavaScript Executor trong selenium với Python?
  • Hiểu thực thi kịch bản async trong selenium
  • Làm thế nào để gọi một chức năng với một hàm tạo chức năng trong JavaScript?
  • Làm thế nào để sử dụng selen với python?
  • Làm thế nào để có được văn bản bên trong của một trang web với một giám đốc điều hành JavaScript trong selenium với Python?

Bạn có thể thực hiện JavaScript với Selenium WebDriver. Trong hướng dẫn này, bạn sẽ tìm hiểu làm thế nào bạn có thể chạy JS trực tiếp từ mã Python của bạn.

Bạn sử dụng selenium để thực hiện kiểm tra tự động các ứng dụng hoặc trang web web hoặc chỉ tự động hóa trình duyệt web. Nó có thể tự động hóa cả trình duyệt máy tính để bàn và trình duyệt di động.selenium webdriver có thể thực thi JavaScript. Sau khi tải một trang, bạn có thể thực hiện bất kỳ JavaScript nào bạn muốn. Một webdriver phải được cài đặt để selen hoạt động.
Selenium webdriver can execute Javascript. After loading a page, you can execute any javascript you want. A webdriver must be installed for selenium to work.

Tất cả những gì cần thiết để thực thi JavaScript là gọi phương thức

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
3 trong đó JS là mã JavaScript của bạn.

Khóa học liên quan:

  • Khóa học & ví dụ tự động hóa web Selenium

JavaScript

JavaScript là gì?

JavaScript là một ngôn ngữ kịch bản được tạo ra để chạy trên đầu trang web (phía máy khách). Nó đã từng chỉ tạo ra một tương tác trang web, nhưng ngày nay có những khung hoàn chỉnh cho phép bạn xây dựng mặt trước của các ứng dụng.

Làm thế nào để thực thi JavaScript?

Trước khi bạn có thể sử dụng selenium, hãy đảm bảo nó được cài đặt và bạn cũng có trình điều khiển web phù hợp. Bạn có thể khởi tạo selen theo cách bạn luôn làm.

Nếu bạn tải một trang web với Python selenium, bạn có thể tiêm JavaScript theo cách thủ công vào trang đó. Nếu bạn đặt tên cho Trình điều khiển đối tượng WebDriver của mình, thì bạn có thể thực hiện nó như vậy:

1
driver.execute_script("some javascript code here");

Chương trình bên dưới chạy lệnh JavaScript một dòng sau khi tải trang. Điều này sẽ hiển thị hộp cảnh báo trong trang web.

1
2
3
4
5
6
7
________số 8

Hướng dẫn call javascript function selenium python - gọi hàm javascript selenium python

Điều này có nghĩa là bạn cũng có thể sử dụng JavaScript bên trong Selenium để nhấp vào các mục, như trên một nút.

1
2
3
4
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
0

Để cuộn cửa sổ trình duyệt, bạn cũng có thể sử dụng JavaScript:

1
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
2

Nhưng tất nhiên, bạn cũng có thể làm điều này theo cách pythonic bằng cách sử dụng mô -đun selen.

Nếu bạn chưa quen với Selenium, thì tôi đánh giá cao cuốn sách này.

Tải xuống ví dụ

Làm cách nào để gọi chức năng JavaScript từ Python?

Mô -đun JS2Py cung cấp một cách để chuyển đổi mã JS thành mã Python, chúng ta phải sử dụng hàm dịch_file () cho điều này.Sau khi dịch, chúng tôi sẽ nhập tệp Python và cung cấp một cái gì đó cho chức năng được khai báo trong tệp JavaScript.use the translate_file() function for this. After the translation, we will import the Python file and provide something to the function declared within the javascript file.

Selenium có thể thực thi javascript không?

Selenium thực thi các lệnh javascript bằng cách nhận trợ giúp của phương thức exec_script.Các lệnh được thực thi được truyền dưới dạng đối số cho phương thức.Một số hoạt động như cuộn xuống trong một trang không thể được thực hiện trực tiếp bằng các phương thức selen.Điều này đạt được với sự trợ giúp của người thực thi JavaScript.. The commands to be executed are passed as arguments to the method. Some operations like scrolling down in a page cannot be performed by Selenium methods directly. This is achieved with the help of the Javascript Executor.

Selenium có thể tương tác với JavaScript không?

Bạn sử dụng selenium để thực hiện kiểm tra tự động các ứng dụng hoặc trang web web hoặc chỉ tự động hóa trình duyệt web.Nó có thể tự động hóa cả trình duyệt máy tính để bàn và trình duyệt di động.Selenium WebDriver có thể thực thi JavaScript.Sau khi tải một trang, bạn có thể thực hiện bất kỳ JavaScript nào bạn muốn.Selenium webdriver can execute Javascript. After loading a page, you can execute any javascript you want.