元素定位的八种方式
id : element = driver.find_element_by_id(id) name : element = driver.find_element_by_name(name) class_name : element = driver.find_element_by_class_name(class_name) tag_name : element = driver.find_element_by_tag_name(tag_name) link_text : element = driver.find_element_by_link_text(link_text) partial_link_text : element = driver.find_element_by_partial_link_text(partial_link_text) xpath : element = driver.find_element_by_xpath(xpath) css : element = driver.find_element_by_css_selector(css_selector)
id, name, class: 基于元素的对应属性去定位 tag_name: 基于元素的标签名称 link_text, partial_link_text: 基于链接文本定位 xpath: 基于元素路径定位 css: 基于元素选择器定位
元素的基本操作
element.click() – 单击元素 element.send_keys(value) – 模拟输入 element.clear() – 清除文本
准备数据(demo.html)
<!DOCTYPE html>
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< title> web_auto_test</ title>
< style>
body {
text-align : center;
}
</ style>
</ head>
< body>
< p>
< label for = " demo_id" > 文本输入框</ label>
< input type = " text" id = " demo_id" class = " demo_class" name = " demo_name" placeholder = " 输入内容" />
</ p>
< p>
< a href = " https://www.baidu.com" > 百度</ a>
</ p>
</ body>
</ html>
元素定位方法演示(demo.py
)
"""
@Author: nonevx
@Contact: nonevxx@gmail.com
@Date : 2019/5/6
@Desc : Selenium八种元素定位方法和基本元素操作方法演示
"""
from selenium import webdriver
from time import sleep
driver = webdriver. Chrome( )
url = "file:///C:/Users/VX/Desktop/demo.html"
driver. get( url)
element = driver. find_element_by_id( "demo_id" )
element. send_keys( "通过id定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
element = driver. find_element_by_name( "demo_name" )
element. send_keys( "通过name定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
element = driver. find_element_by_class_name( "demo_class" )
element. send_keys( "通过class_name定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
element = driver. find_element_by_tag_name( "input" )
element. send_keys( "通过tag_name定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
element = driver. find_element_by_link_text( "百度" )
element. click( )
sleep( 3 )
driver. back( )
sleep( 3 )
element = driver. find_element_by_partial_link_text( "度" )
element. click( )
sleep( 3 )
driver. back( )
sleep( 3 )
element = driver. find_element_by_xpath( '//*[@id="demo_id" and @name="demo_name"]' )
element. send_keys( "通过xpath定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
element = driver. find_element_by_css_selector( "#demo_id" )
element. send_keys( "通过css选择器定位" )
sleep( 3 )
element. clear( )
sleep( 3 )
driver. quit( )