python中八大定位方法:
selenium的安装方法:
在学习selenium 之前呢?首先我们需要下载selenium这个这个第三方的工具包
这个selenium不是python自带的工具包,那么就需要通过下载进行使用
下载的方法:
方法1:python selenium 下载方法:pip install selenium
方法2:settings project interpreter 里面也可以进行下载
Selenium特点:
1.开源、免费
2.多浏览器支持:Firefox、Chrome、IE、Opera
3.多平台支撑:windows、linux、MAC
chrome 谷歌驱动的安装方法:
http://chromedriver.storage.googleapis.com/index.html
安装谷歌驱动器:chromewebdriver
from selenium import webdriver
"""打开一个浏览器:定义一个webdriver的对象"""
driver = webdriver.Chrome()
""" get 方法:打开一个网址"""
driver.get("http://www.baidu.com")
""" 窗口最大化--目的防止页面元素定位不到"""
driver.maximize_window()
"""
方法1 :
通过id 进行定位"""
driver.find_element_by_id("kw").send_keys("谁是天底下最帅的男孩子")
"""
方法2:
通过class 进行定位"""
driver.find_element_by_class_name("s_ipt").send_keys("满天星")
"""
方法3:
通过name值进行定位"""
driver.find_element_by_name("wd").send_keys("你相信光嘛")
"""
方法4:
通过 text 文本值进行定位 """
driver.find_element_by_link_text("hao123").click()
"""
方法5:
通过 模糊文本 定位"""
driver.find_element_by_partial_link_text('123').click()
"""
方法6:
tag---name值定位"""
"""
driver.find_element_by_tag_name()
driver.find_elements_by_tag_name()
注意:第一个element 不带s 只能适用于当前页面只有一个input输入框
第二个elements 带"s" 它可以获取到当前页面所有的input输入框
"""
js = driver.find_elements_by_tag_name("input")
print(js)
""" 获取到所有input输入框的元素"""
for i in js:
if i.get_attribute("name") == "wd":
i.send_keys("多测试")
""" 1,通过for循环遍历出每一个input输入框的元素内容
使用get_attribute 获取对应值进行判断input输
入框的元素如果 == 就send_keys进行输入
2,除了name值以外input输入框中所有的值都可以获取
进行判断
"""
"""
方法7:
通过 xpath id 路径定位 """
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("你好ya! python")#相对路径
""" 通过 xpath name 路径定位"""
driver.find_element_by_xpath('//input[@name="wd"]').send_keys("你好ya! python")
""" 通过 xpath 路径上级(父级)定位"""
driver.find_element_by_xpath('//*[@id="form"]/span[1]/input[1]').send_keys("你好ya! python")
"""通过XPATH路径class定位"""
driver.find_element_by_xpath('//*[@class="s_ipt"]').send_keys('多测师')
"""通过xpath路径autocomplete定位"""
driver.find_element_by_xpath('//*[@autocomplete="off"]').send_keys('多测师')
"""XPAST路径 路径值进行组合定位"""
driver.find_element_by_xpath('//*[@name="wd" and @class="s_ipt"]').send_keys('多测师')
"""
方法8:
CSS 定位方法:"""
"""#id选择器定位"""
driver.find_element_by_css_selector('#kw').send_keys('多测师')
"""#class选择器定位 """
driver.find_element_by_css_selector('.s_ipt').send_keys('多测师')
"""id值 定位"""
driver.find_element_by_css_selector('[id=kw]').send_keys('多测师')
"""name值 定位"""
#driver.find_element_by_css_selector('[name=wd]').send_keys('多测师')
"""class值 定位"""
driver.find_element_by_css_selector('[class=s_ipt]').send_keys('多测师')
"""组合值定位"""
driver.find_element_by_css_selector('[name=wd][class=s_ipt]').send_keys('多测师')
"""autocomplete 定位"""
driver.find_element_by_css_selector('[autocomplete=off]').send_keys('多测师')
"""上级定位"""
driver.find_element_by_css_selector('span>input').send_keys('多测师')
"""上上级定位"""
driver.find_element_by_css_selector('form>span>input').send_keys('多测师')