from selenium import webdriver
from time import sleep
元素定位方式
ID定位:根据ID属性定位
name定位:根据name属性定位
class定位:根据class属性定位---一般用于定位多个元素
tag_name(元素名)定位:一般用于定位多个元素
link_test:根据超链接元素的文本定位,必须完全匹配
partial_link_text:根据超链接元素的文本进行定位,模糊匹配
driver = webdriver.Chrome()
driver .get('https://www.baidu.com/')
元素定位方式
根据ID定位元素
input = driver.find_element_by_id('kw')
根据name定位元素
input = driver.find_element_by_name('wd')
根据class定位元素
input = driver.find_element_by_class_name('s_ipt')
写入文本
input.send_keys('货拉拉')
sleep(2)
根据ID定位‘百度一下’
btn = driver.find_element_by_id('su')
根据class进行定位:class就是用来装饰,有可能唯一,必定定位到,不唯一的话默认定位第一个
btn = driver.find_element_by_class_name('s_btn')
单击‘百度一下’
btn.click()
sleep(3)
定位‘新闻’
driver.find_element_by_link_text('新闻').click()
定位‘直播’
driver.find_element_by_partial_link_text('直').click()
定位单个元素
find_elements_by_xxx返回的是一个列表,如果没有合适的元素,则返回一个空列表
inputs = driver.find_elements_by_tag_name('input')
print(inputs)
元素定位方式
xpath
from selenium import webdriver
from time import sleep
try:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
定位搜索框
绝对路径 以/开始
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/from/span[1]/input').send_keys('货拉拉')
相对路径 以//开始
@表示属性
* 通配符,表示任意元素
driver.find_element_by_xpath('//input[@id="kw"].send_keys('货拉拉')
driver.find_element_by_xpath('//input[@id="su"].send_keys('货拉拉')
driver.find_element_by_xpath('//form[@id="form"]/span[1]/input').send_keys('货拉拉')
可以同时定位多个属性进行定位
driver.find_element_by_xpath('//input[@class="s_ipt" and @autocomplete = "off"]').send_keys('货拉拉')
driver.find_element_by_xpath('//form[@id="form"]/span[2]/input').click()
driver.find_element_by_xpath('//form[@id="form"]/span[2]/input').click()
except Exception as e :
print(e)
finally:
sleep(2)
driver.close()
from selenium import webdriver
from time import sleep
try:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
文本定位
文本定位于开始标签和结束标签之间的文字
text()获取元素文本
contains 包含元素文本,所有的否可以用
定位贴吧--精确匹配
driver.find_element_by_xpath('//a[text()="贴吧"]').click()
定位设置
driver.find_element_by_xpath('//span[text()="设置"]').click()
模糊匹配
driver.find_element_by_xpath('//*[contains(),"度热榜")]').click()
driver.find_element_by_xpath('//input[contains(@value,"一下")]').click()
except Exception as e:
print(e)
finally:
sleep(3)
关闭当前浏览器
driver.close()
退出浏览器
driver.quit()
from selenium import webdriver
from time import sleep
try:
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_xpath('#kw').send_keys()
except Exception as e:
print(e)
finally:
sleep(3)
driver.quit()
|