当前位置:网站首页>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
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’)
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")
边栏推荐
- 2022.02.13 - SX10-30. Home raiding II
- Nail error code Encyclopedia
- Nacos installation and service registration
- [untitled]
- GWT module may need to be (RE) compiled reduce - GWT module may need to be (RE) compiled reduce
- 2022 Software Test Engineer salary increase strategy, how to reach 30K in three years
- Codeforces Global Round 19
- 【无标题】
- Roman numeral to integer
- VOT Toolkit环境配置与使用
猜你喜欢

d3dx9_ What if 29.dll is missing? System missing d3dx9_ Solution of 29.dll file

Error when LabVIEW opens Ni instance finder

My experience and summary of the new Zhongtai model

Metaverse ape ape community was invited to attend the 2022 Guangdong Hong Kong Macao Great Bay metauniverse and Web3.0 theme summit to share the evolution of ape community civilization from technology

Postman core function analysis - parameterization and test report

2022软件测试工程师涨薪攻略,3年如何达到30K

30 optimization skills about mysql, super practical

Spectrum analysis of ADC sampling sequence based on stm32

Ieventsystemhandler event interface

Business introduction of Zhengda international futures company
随机推荐
二叉树(二)——堆的代码实现
Roman numeral to integer
BFC block level formatting context
基于STM32的ADC采样序列频谱分析
Paddy serving v0.9.0 heavy release multi machine multi card distributed reasoning framework
VOT toolkit environment configuration and use
Codeforces Global Round 19
一文搞定JVM常见工具和优化策略
Starting from 1.5, build a micro Service Framework -- log tracking traceid
Nail error code Encyclopedia
一文搞定垃圾回收器
分布式解决方案之TCC
第一讲:蛇形矩阵
Solve the problem of "no input file specified" when ThinkPHP starts
opencv 判断点在多边形内外
Assign the output of a command to a variable [repeat] - assigning the output of a command to a variable [duplicate]
Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
Arduino measures AC current
Binary tree (II) -- code implementation of heap
我对新中台模型的一些经验思考总结