当前位置:网站首页>Element operation and element waiting in Web Automation

Element operation and element waiting in Web Automation

2022-07-05 22:52:00 FamilyYan

One 、 Element operation
1、 Click on
element.click()
2、 Get element name
element.tag_name

from selenium import webdriver
import logging
import time

logging.basicConfig(level=logging.DEBUG)
#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

#  Find Baidu input box , Enter lemon class 
ele = driver.find_element_by_id("kw")
ele.send_keys(" Winter Olympic Games ")
target_name = ele.tag_name
print(" Tag name :", target_name) #  Tag name : input


3、 Get element text content
element.text
 Insert picture description here

from selenium import webdriver
import logging
import time

logging.basicConfig(level=logging.DEBUG)
#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

#  Find search by image 
ele = driver.find_element_by_xpath('//span[text()=" Pay attention to ice and snow events   Together to the future "]')
text = ele.text
print(" The text is :",text)  #  The text is :  Pay attention to ice and snow events   Together to the future 
ele.click()

time.sleep(3)
driver.quit()

4、 Clear the input box
element.clear()

from selenium import webdriver
import logging
import time

logging.basicConfig(level=logging.DEBUG)
#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#  Find Baidu input box , Enter lemon class 
ele = driver.find_element_by_id("kw")
ele.send_keys(" Winter Olympic Games ")
time.sleep(4)
#  Emptying operation , When there is a default value , Clear the default value first 
ele.clear()
time.sleep(3)
driver.quit()

5、 Get element attribute value
element.get_attribute(name=‘type’)
 Insert picture description here

from selenium import webdriver
import logging
import time

logging.basicConfig(level=logging.DEBUG)
#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
#  Find Baidu input box 
ele = driver.find_element_by_id("kw")
ele.send_keys(" Winter Olympic Games ")


# #  Find it, baidu click the button , click 
ele2 = driver.find_element_by_id("su")
val = ele2.get_attribute("value")
print(val) # use Baidu Search 
ele2.click()

time.sleep(3)
driver.quit()

Two 、 Element to wait

1、 Element waiting for classification

1、 Mandatory waiting
2、 According to wait
3、 An implicit wait

1、 Mandatory waiting
Use time.sleep(5)
2、 An implicit wait

driver.implicitly_wait(2)
characteristic :
(1) The entire session is executed only once , But it works for all elements , That is, all elements will execute element waiting
(2) The waiting time is in seconds
(3) Element wait time exceeded , If the element does not appear , Then the positioning will fail

from selenium import webdriver
import time

#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

#  An implicit wait 
driver.implicitly_wait(2)

#  Find Baidu input box 
ele = driver.find_element_by_id("kw")
ele.send_keys(" Winter Olympic Games ")


# #  Find it, baidu click the button , click 
ele2 = driver.find_element_by_id("su")
val = ele2.get_attribute("value")
print(val) # use Baidu Search 
ele2.click()

time.sleep(3)
driver.quit()

3、 According to wait

1、 stay timeout Within the set time , And then according to poll_frequency Enter the set time to query whether the element 【 so 、 There is 】
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait Class parameter :
1、driver: Browser driven
2、timeout: Timeout of element waiting ( second ),10
3、poll_frequency=POLL_FREQUENCY: Polling cycle , The default is 0.5 second ,1
4、ignored_exceptions: Exception information thrown after timeout ,no such element exception

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

#  Start the browser driver server 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

#  According to wait 
locator = (By.ID, "kw")
wait = WebDriverWait(driver=driver, timeout=10, poll_frequency=1)
#  Find Baidu input box 
ele = wait.until(EC.visibility_of_element_located(locator=locator))

# ele = driver.find_element_by_id("kw")
ele.send_keys(" Winter Olympic Games ")

# #  Find it, baidu click the button , click 
ele2 = driver.find_element_by_id("su")
val = ele2.get_attribute("value")
print(val)  #  use Baidu Search 
ele2.click()

time.sleep(3)
driver.quit()

Display waiting for use :

 Use 
1、 Write separately 
# Element positioning expression 
locator = (By.ID,"kw")
# Instantiation 
wait = WebDriverWait(driver=driver, timeout=10, poll_frequency=1)
# Element localization 
ele = wait.until(EC.visibility_of_element_located(locator=locator))
# Wait for multiple elements to be visible 
EC.visibility_of_all_elements_located(locator=locator)
 
2、 Combined writing 
ele = WebDriverWait(driver=driver, timeout=10, poll_frequency=1).until(EC.visibility_of_element_located(locator=locator))
 

3、 ... and 、By Class uses

from selenium.webdriver.common.by import By
ele = driver.find_element_by_id("kw")
ele = driver.find_element(By.ID,"kw")
 The two ways of writing are the same 
locator = (By.Xpath,"//body//a")
locator = ("xpath","//body//a")
原网站

版权声明
本文为[FamilyYan]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140353139878.html