Python + Selenium notes (7): WebDriver and WebElement,
(1)WebDriver
WebDriver provides many functions and settings for interacting with browsers. Through WebDriver functions and some methods, it can interact with browser windows, warnings, frameworks, and pop-up windows, it also provides automated browser navigation, setting cookies, screenshots, and other features to facilitate our testing.
(2)WebDriverFunctions and Methods
Function/attribute |
Simple Description |
Current_url |
Get the URL of the current page (driver. current_url) In this way, driver refers to the browser driver instance. |
window_handle |
Get the handle of the current window |
name |
Obtain the underlying browser name of the instance. |
orientation |
Obtains the location of the current device. |
page_source |
Obtain the source code of the current page |
title |
Obtain the title of the current page |
window_handles |
Obtains the handles of all windows in the current session. |
Method |
Simple Description |
close() |
Close current browser window |
back() |
Step back |
forward() |
Step forward |
get(url) |
Access the URL and load the webpage to the current browser session |
maximize_window() |
Maximize browser window |
quit() |
Exit the current driver instance and close all related windows. |
refresh() |
Refresh current page |
implicitly_wait() |
Wait time, in seconds |
set_page_load_timeout() |
Sets the time-out wait time for a page to be fully loaded, in seconds. |
set_script_timeout() |
Set the timeout time for Script Execution |
(3)WebElementFunctions and Methods
Through WebElement, you can interact with website page elements, including text boxes, text fields, buttons, single-choice, multi-choice boxes, tables, rows, columns, and div.
Function/attribute |
Simple Description |
size |
Obtains the element size (for example, element. size) In this way, element refers to an element to be located. |
tag_name |
Get Tag Name |
text |
Obtains the text value of an element. |
Method |
Simple Description |
clear() |
Clear text box or text field content |
click() |
Click Element |
get_attribute(name) |
Gets the attribute value of an element. name: the name of the attribute to be obtained. |
is_displayed() |
Check whether the element is visible to the user |
is_enabled() |
Check whether the element is available |
is_selected() |
Check whether the element is selected. It is mainly used for single-choice and check boxes. |
send_keys(value) |
Input text. value is the value to be input. |
submit() |
Submit the form. If an element is used, the form to which the element belongs is submitted. |
value_of_css_property(property_name) |
Obtains the value of the CSS attribute. property_name is the name of the CSS attribute. |
(4)Operation form, text box, check box, single-choice button
Automated interaction with various HTML controls through WebElement, such as inputting text in a text box, clicking a button, selecting a single button or check box, and obtaining the text and attribute values of elements.
For example, the following figure shows how to automate the registration function of the blog Garden:
(Here is just an example. It is useless to copy directly. The following code only locates some fields (mailbox, login name, and Registration button) and does not process the verification code, how to deal with the verification code)
1 def test_register_new_user (self): 2 3 # locate and click Register 4 5 login_area = self. driver. find_element_by_css_selector ('# login_area') 6 7 register = login_area.find_element_by_link_text ('registration') 8 9 register. click () 10 11 # Check whether the title of the opened webpage is 'user registration-blog service' 12 13 self. assertTrue ('user registration-blog service' = self. driver. title) 14 15 # locate fields on the registration page and register the button 16 17 user_email = self. driver. find_element_by_id ('email ') 18 19 user_login_name = self. driver. find_element_by_id ('loginname') 20 21 register_btn = self. driver. find_element_by_id ('submitbtn ') 22 23 # Check whether the maximum and minimum input characters allowed by the field are as expected 24 25 self. assertEqual ('2', user_login_name.get_attribute ('data-val-length-min') 26 27 self. assertEqual ('30', user_login_name.get_attribute ('data-val-length-max ') 28 29 # Check whether each field and button are visible to the user and available for 30 31 self. assertTrue (user_email.is_displayed () and user_email.is_enabled () 32 33 # enter user information 34 35 user_email.send_keys ('test @ 163.com ') 36 37 values ('test ') 38 39 # click the Registration button 40 41 register_btn.click () 42 43 # Check whether the registration successful prompt 44 45 self.assertTrue(self.driver.find_element_by_css_selector('p.txt-title. success-color '). text = 'registered successfully ')
For example, you can use the following method to check whether the check box on the logon page of the blog garden is selected.
1 def test_login (self): 2 3... The code used to open the logon page is omitted (This section is not commented #) 4 5 automatic_login = self. driver. find_element_by_id ('Remember _ me ') 6 7 # Check the check box on the logon page to check whether the logon page is deselected 8 9 self by default. assertFalse (automatic_login.is_selected () 10 11 # click the check box 12 13 automatic_login.click ()