Hướng dẫn how do you click a element in selenium python? - làm thế nào để bạn nhấp vào một phần tử trong trăn selen?

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận

    Mô -đun Selenium sườn Python được xây dựng để thực hiện thử nghiệm tự động với Python. Các ràng buộc Selenium Python cung cấp một API đơn giản để viết các bài kiểm tra chức năng/chấp nhận bằng selenium webdriver. Để mở một trang web bằng Selenium Python, thanh toán - Điều hướng các liên kết bằng phương thức Get - Selenium Python. Chỉ cần có thể đi đến những nơi là rất hữu ích. Những gì chúng tôi thực sự muốn làm là tương tác với các trang, hay cụ thể hơn là các phần tử HTML trong một trang. Có nhiều chiến lược để tìm một yếu tố sử dụng selenium, thanh toán - định vị các chiến lược

    element.click()

    Bài viết này xoay quanh cách sử dụng phương pháp

    elements = driver.find_elements_by_id("link")
    4 trong selen. Phương thức
    elements = driver.find_elements_by_id("link")
    4 được sử dụng để nhấp vào bất kỳ phần tử nào, chẳng hạn như thẻ neo, liên kết, v.v.

    Cú pháp -

    Thí dụ -

    Để tìm một yếu tố mà người ta cần sử dụng một trong các chiến lược định vị, ví dụ,

    elements = driver.find_elements_by_id("link")

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")

    element.click()

    Ngoài ra, để tìm nhiều yếu tố, chúng ta có thể sử dụng -

    Bây giờ người ta có thể nhấp vào phần tử này với
    Program –

    Làm thế nào để sử dụng phương thức nhấp chuột trong Selenium Python?

    Hãy để sử dụng https://www.geeksforgeek.org/ để minh họa phương pháp này trong Selenium Python. Ở đây chúng tôi nhấp vào Tab khóa học trong thanh điều hướng tại GeekSfeekSprogram -

    elements = driver.find_elements_by_id("link")
    6
    elements = driver.find_elements_by_id("link")
    7
    elements = driver.find_elements_by_id("link")
    8
    elements = driver.find_elements_by_id("link")
    9

    element.click()
    8

    Output-

    Hướng dẫn how do you click a element in selenium python? - làm thế nào để bạn nhấp vào một phần tử trong trăn selen?

    Điều đầu tiên bạn muốn làm với WebDriver là điều hướng đến một liên kết. Cách bình thường để làm điều này là bằng cách gọi phương thức

    element.click()
    9:

    driver.get("http://www.google.com")
    

    WebDriver sẽ đợi cho đến khi trang đã được tải đầy đủ (nghĩa là sự kiện

    driver.get("http://www.google.com")
    
    0 đã bị bắn) trước khi trả lại quyền kiểm soát cho bài kiểm tra hoặc tập lệnh của bạn. Xin lưu ý rằng nếu trang của bạn sử dụng nhiều AJAX khi tải thì WebDriver có thể không biết khi nào nó được tải hoàn toàn. Nếu bạn cần đảm bảo các trang như vậy được tải đầy đủ thì bạn có thể sử dụng Waits.waits.

    3.1. Tương tác với trang

    Chỉ cần có thể đi đến những nơi là rất hữu ích. Những gì chúng tôi thực sự muốn làm là tương tác với các trang, hay cụ thể hơn là các phần tử HTML trong một trang. Trước hết, chúng ta cần tìm một. WebDriver cung cấp một số cách để tìm các yếu tố. Ví dụ, được đưa ra một phần tử được xác định là:

    <input type="text" name="passwd" id="passwd-id" />
    

    Bạn có thể tìm thấy nó bằng cách sử dụng bất kỳ:

    element = driver.find_element(By.ID, "passwd-id")
    element = driver.find_element(By.NAME, "passwd")
    element = driver.find_element(By.XPATH, "//input[@id='passwd-id']")
    element = driver.find_element(By.CSS_SELECTOR, "input#passwd-id")
    

    Bạn cũng có thể tìm kiếm một liên kết bằng văn bản của nó, nhưng hãy cẩn thận! Các văn bản phải là một trận đấu chính xác! Bạn cũng nên cẩn thận khi sử dụng XPath trong WebDriver. Nếu có nhiều hơn một yếu tố phù hợp với truy vấn, thì chỉ có phần đầu tiên sẽ được trả về. Nếu không có gì có thể tìm thấy, một

    driver.get("http://www.google.com")
    
    1 sẽ được nâng lên.

    WebDriver có API dựa trên đối tượng của người Viking; Chúng tôi đại diện cho tất cả các loại phần tử bằng cùng một giao diện. Điều này có nghĩa là mặc dù bạn có thể thấy rất nhiều phương pháp có thể, bạn có thể gọi khi bạn nhấn vào sự kết hợp khóa tự động hoàn chỉnh IDE của mình, nhưng không phải tất cả chúng sẽ có ý nghĩa hoặc hợp lệ. Đừng lo! WebDriver sẽ cố gắng làm điều đúng đắn và nếu bạn gọi một phương thức không có ý nghĩa (ví dụ, SetSelected () trên một thẻ meta meta, chẳng hạn) một ngoại lệ sẽ được nêu ra.

    Vì vậy, bạn đã có một yếu tố. bạn có thể làm gì với nó? Trước hết, bạn có thể muốn nhập một số văn bản vào một trường văn bản:

    element.send_keys("some text")
    

    Bạn có thể mô phỏng việc nhấn các phím mũi tên bằng cách sử dụng lớp Keys Keys:

    element.send_keys(" and some", Keys.ARROW_DOWN)
    

    Có thể gọi Send_Keys trên bất kỳ phần tử nào, điều này có thể kiểm tra các phím tắt như các phím tắt được sử dụng trên Gmail. Một tác dụng phụ của điều này là việc gõ một cái gì đó vào một trường văn bản giành được tự động xóa nó. Thay vào đó, những gì bạn gõ sẽ được thêm vào những gì đã có ở đó. Bạn có thể dễ dàng xóa nội dung của trường văn bản hoặc Textarea bằng phương thức rõ ràng:

    3.2. Điền vào những mẫu đơn¶

    Chúng tôi đã thấy cách nhập văn bản vào trường TextArea hoặc văn bản, nhưng còn các yếu tố khác thì sao? Bạn có thể chuyển đổi trạng thái của Drop Down và bạn có thể sử dụng Set SetSelected để đặt một cái gì đó giống như một thẻ tùy chọn được chọn. Đối phó với các thẻ chọn là quá tệ:

    element = driver.find_element(By.XPATH, "//select[@name='name']")
    all_options = element.find_elements(By.TAG_NAME, "option")
    for option in all_options:
        print("Value is: %s" % option.get_attribute("value"))
        option.click()
    

    Điều này sẽ tìm thấy phần tử chọn đầu tiên trên trang trên trang và lần lượt quay vòng từng tùy chọn của nó, in ra các giá trị của chúng và lần lượt chọn từng tùy chọn.

    Như bạn có thể thấy, đây là cách xử lý hiệu quả nhất với các yếu tố được chọn. Các lớp hỗ trợ của WebDriver, bao gồm một người được gọi là một người chọn, cung cấp các phương pháp hữu ích để tương tác với sau:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    0

    WebDriver cũng cung cấp các tính năng để bỏ chọn tất cả các tùy chọn đã chọn:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    1

    Điều này sẽ bỏ chọn tất cả các tùy chọn từ chọn cụ thể đó trên trang.

    Giả sử trong một thử nghiệm, chúng ta cần danh sách tất cả các tùy chọn được chọn mặc định, chọn lớp cung cấp một phương thức thuộc tính trả về danh sách:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    2

    Để có được tất cả các tùy chọn có sẵn:

    Khi bạn đã hoàn thành việc điền vào biểu mẫu, có lẽ bạn muốn gửi nó. Một cách để làm điều này sẽ là tìm nút gửi trực tuyến và nhấp vào nó:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    3

    Ngoài ra, WebDriver có phương thức tiện lợi, gửi về trên mọi yếu tố. Nếu bạn gọi cái này trên một phần tử trong một biểu mẫu, WebDriver sẽ đi lên DOM cho đến khi tìm thấy biểu mẫu kèm theo và sau đó các cuộc gọi gửi trên đó. Nếu phần tử không phải là một hình thức, thì

    driver.get("http://www.google.com")
    
    1 sẽ được nâng lên:

    3.3. Kéo và thả¶

    Bạn có thể sử dụng kéo và thả, di chuyển một phần tử theo một lượng nhất định hoặc vào một phần tử khác:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    4

    3.4. Di chuyển giữa Windows và khung

    Nó rất hiếm khi một ứng dụng web hiện đại không có bất kỳ khung hoặc bị giới hạn trong một cửa sổ. WebDriver hỗ trợ di chuyển giữa các cửa sổ được đặt tên bằng phương thức chuyển đổi của Google_to_window:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    5

    Tất cả các cuộc gọi đến

    driver.get("http://www.google.com")
    
    3 bây giờ sẽ được hiểu là được hướng đến cửa sổ cụ thể. Nhưng làm thế nào để bạn biết tên cửa sổ? Hãy xem JavaScript hoặc liên kết đã mở nó:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    6

    Ngoài ra, bạn có thể chuyển một tay cầm cửa sổ trên mạng sang phương thức của Switch_to_window (). Biết được điều này, nó có thể lặp lại trên mọi cửa sổ mở như vậy:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    7

    Bạn cũng có thể đu từ khung này sang khung khác (hoặc vào iframes):

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    8

    Nó có thể truy cập các khung con bằng cách tách đường dẫn bằng một dấu chấm và bạn cũng có thể chỉ định khung bằng chỉ mục của nó. Đó là:

    element = driver.find_element_by_id("link")
    element = driver.find_element_by_xpath("//a[@id='link']")
    9

    sẽ đi đến khung có tên là Child Child của khung con đầu tiên của khung có tên là Fram Framename. Tất cả các khung được đánh giá như thể từ *top *.All frames are evaluated as if from *top*.

    Khi chúng tôi hoàn thành việc làm việc trên các khung, chúng tôi sẽ phải quay lại khung cha mẹ có thể được thực hiện bằng cách sử dụng:

    elements = driver.find_elements_by_id("link")
    0

    3.6. Điều hướng: Lịch sử và Vị trí Jor

    Trước đó, chúng tôi đã đề cập đến việc điều hướng đến một trang bằng cách sử dụng lệnh của Get Get (

    driver.get("http://www.google.com")
    
    4). Như bạn đã thấy, WebDriver có một số giao diện nhỏ hơn, tập trung vào nhiệm vụ và điều hướng là một nhiệm vụ hữu ích. Để điều hướng đến một trang, bạn có thể sử dụng phương thức Get:

    elements = driver.find_elements_by_id("link")
    1

    Để di chuyển về phía sau và chuyển tiếp trong lịch sử trình duyệt của bạn:

    elements = driver.find_elements_by_id("link")
    2

    Xin lưu ý rằng chức năng này phụ thuộc hoàn toàn vào trình điều khiển cơ bản. Nó chỉ có thể là một cái gì đó bất ngờ có thể xảy ra khi bạn gọi các phương pháp này nếu bạn đã quen với hành vi của một trình duyệt so với một trình duyệt khác.

    3.7. Bánh quy¶

    Trước khi chuyển sang phần tiếp theo của hướng dẫn, bạn có thể quan tâm đến việc hiểu cách sử dụng cookie. Trước hết, bạn cần phải ở trên miền mà cookie sẽ có giá trị cho:

    elements = driver.find_elements_by_id("link")
    3

    Làm thế nào để bạn nhấp vào một cái gì đó trong Selenium Python?

    Bây giờ bạn đã biết về selenium và các công cụ của nó cho các mục đích sử dụng khác nhau, hãy xem cách bạn nhấp vào nút trên trang web bằng cách sử dụng Python và Selenium WebDriver ...
    Nhập vào phụ thuộc ..
    Trình duyệt mở bằng selen ..
    Tìm kiếm và nhấp vào nút ..
    Đóng trình duyệt ..

    Làm thế nào để bạn nhấp vào một phần tử trong selen?

    Chúng ta có thể sử dụng JavaScript Executor trong Selenium để nhấp vào một phần tử.Selenium có thể thực thi các lệnh javascript với sự trợ giúp của phương thức thực thi.Đôi khi, trong khi nhấp vào một liên kết, chúng tôi nhận được bất hợp pháp, để tránh ngoại lệ này, Executor JavaScript được sử dụng thay vì nhấp vào phương thức.use the JavaScript Executor in Selenium to click an element. Selenium can execute JavaScript commands with the help of the method executeScript. Sometimes while clicking a link, we get the IllegalStateException, to avoid this exception, the JavaScript executor is used instead of the method click.

    Làm thế nào để bạn nhấp vào văn bản trong Python?

    Cách tiếp cận từng bước:..
    Nhập các mô -đun yêu cầu ..
    Tạo đối tượng WebDriver ..
    Chỉ định URL ..
    Sử dụng phương thức Maximize_window () để tối đa hóa cửa sổ trình duyệt.Và sau đó đợi 10 giây bằng phương pháp Sleep () ..
    Sử dụng phương thức Find_element_by_link_text () để nhấp vào nút bằng văn bản ..