from selenium import webdriver
from selenium.webdriver.common.actionchains import ActionChains as ac #鼠标事件包
from selenium.webdriver.common.keys import Keys as ky #键盘事件_
driver = webdriver.Chrome()
#元素定位
driver.findelement_by_id(‘id’)#id定位
driver.find_element_by_name(‘name’)#name定位
driver.find_element_by_class_name(‘class’)#classname定位 取class属性 class属性有空格是多重属性,取其中一个就行
driver.find_element_by_tag_name(‘input’)#标签定位
driver.find_element_by_link_text(‘baidu.com’)#超链接href定位 精准匹配
driver.find_element_by_xpath(‘//[@id=”123”]’)#xpath定位
driver.find_element_by_css_selector(‘css’)#css定位
driver.find_elements_by_name(‘name’)[1].send_keys()#复数定位
driver.find_element_by_partial_link_text(‘baidu’)#超链接href定位 模糊匹配_
#xpath定位
driver.findelement_by_xpath(“//*[@id=’kw’]”).send_keys(“hao”)#通过id定位
driver.find_element_by_xpath(“//*[@id=’kw’]”)#通过tag标签定位,匹配任何标签
driver.find_element_by_xpath(“//input[@id=’kw’]”)#指定标签名称定位
driver.find_element_by_xpath(“//input[@class=’s_ipt’]”).send_keys(“hao”)#通过class定位
driver.find_element_by_xpath(“//input[@name=’wd’]”).send_keys(“hao”)#通过name定位
driver.find_element_by_xpath(“//input[@autocomplete=’off’]”).send_keys(“hao”)#其他属性定位
driver.find_elements_by_xpath(“//input[@type=’text’ and @name=’wd’]”)#多个属性定位_
driver.find_element_by_xpath(**”//[text()=‘文本’]”)#文本定位
driver.find_element_by_xpath(“(//li[@data-id=’bug’])[2]“**)#复数定位
#层级关系
driver.findelement_by_xpath(“//form[@id=’form’]/span/input”)#下级元素
driver.find_element_by_xpath(“//*[@id=’nr’]/option[3]”)#下级元素的第三个元素
driver.find_element_by_xpath(“//*[@id=’nr’]/../..”)#找上层元素_
#模糊匹配
driver.findelement_by_xpath(“//a[contains(text(),’糯’)]”).click()#模糊匹配糯开头的a标签
driver.find_element_by_xpath(“//input[contains(@class,’s_ip’)]”).send_keys(“hao”)#模糊匹配某个属性
driver.find_element_by_xpath(“//input[starts-with(@class,’s_ip’)]”).send_keys(“hao”)#模糊匹配以xx开头的_
#定位表格
driver.findelement_by_xpath(‘.//*[@id=”bugList”]/tbody/tr[6]/td[4]/a’)#.//[@id=‘表格id’]/tbody/tr[行数]/td[列数]/a
x = 6#参数化行和列_
y = 4
table = **”.//[@id=’bugList’]/tbody/tr[%s]/td[%s]/a” **% (x, y )
driver.findelement_by_xpath(table).click()
#如何根据表格名称点后面按钮,用父子定位实现_
#属性定位
driver.findelement_by_css_selector(“#kw”).send_keys(“hao”)#通过id定位
driver.find_element_by_css_selector(“.s_ipt”).send_keys(“hao”)#通过calss定位
driver.find_element_by_css_selector(“input”).send_keys(“hao”)#通过标签定位
driver.find_element_by_css_selector(“[name=’kw’]”)#通过name定位
driver.find_element_by_css_selector(“[autocomplete=’off’]”)#通过autocomplete定位,不局限据这几种
driver.find_element_by_css_selector(“span>input”)#父子定位
driver.find_element_by_css_selector(“form.fm>span>input.s_ipt”)#组合定位
driver.find_element_by_css_selector(“form#form>span>input#kw”)
driver.find_element_by_css_selector(‘[class=”form-control”][name=”account”]’)#同时满足两个属性
driver.find_element_by_id(“h5Input0”).send_keys(“E:\123.txt”)#文件上传_
#Jquery定位
driver.executescript(‘$(#input1.val(输入文本的值)’)#输入值
driver.execute_script(‘$(#input1.val(‘’)’)#清空文本_
#select下拉框多选项
driver.findelement_by_xpath(“.//*[@id=’nr’]/option[3]”).click()#直接通过xpath定位
driver.find_element_by_id(“nr”).find_element_by_xpath(“//option[@value=’50’]”).click()#先定位下拉框,然后再二次定位
mouse = driver.find_element_by_link_text(“设置”)# 先让选项框弹出来
ac(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text(“搜索设置”).click()# 再点击选项框里面的元素
a = driver.switch_to.alert()#切换到弹出框
a.accept()#点击弹出框确认按钮
print(a.text)#打印弹出框文本信息_