标签:选中 获取元素 ext 等价 通过 win radio 文本 scree
1、根据元素特征:id,name,class,tag,超链接
写法1:
ele=driver.find_element_by_id(‘kw‘)
写法2:
from selenium.webdriver.common.by import By ele=driver.find_element(by=By.ID,value=‘kw‘)
tag为元素标签,类似div,span等
超链接:driver.find_element_by_link_text(‘转到百度‘)
driver.find_element_by_partial_link_text(‘百度‘) #根据部分超链接文本定位元素,模糊匹配
1、选择元素的方法 tag/id/class
2、组选择,同时选择多个元素,用逗号隔开
语法<s1>,<s2>
比如:p,button #food,.cheese
组合使用:
1、选择 id为food的所有span子元素 和 所有的p (包括非food的子元素):#food>span,p
2、选择 id为food的 所有span子元素和所有的p子元素:#food>span,#food>p
3、选择id为food的所有子元素:#food>*
3、兄弟节点选择:
比如:#food+div #many>div>p.special+p 兄弟元素,且紧接在后面
比如:#food~div 兄弟元素,但不一定紧接后面
4、属性选择器:可以根据元素的属性及属性值来选择元素
5、伪类
6、验证CSS选择器
1、选择元素的方法
// :后代元素 /:子元素 //*[@class="name"]
2、组选择(根据多个属性定位)
//p[@class="name"][@class="age"]
3、子元素选择
//*[@id="food"]/p[1] 等价于 #food>p:nth-of-type(1)
//span[last()-1] 属于其父元素的倒数第二个span
//*[@id="food"]/span[last()] id为food下的倒数第一个span元素
//*[2] 等价于 //*[position()=2]
//*[@id="food"]/*[position()=3]
//*[@id="food"]/*[position()<3]
//*[@id="food"]/*[position()<=3]
//*[@id="food"]/*[last()-1] 等价于 //*[@id="food"]/*[position()=last()-1]
多选 //*[@id="food"]/*[position()>last()-3]
//*[@id="food"]/*[position()>1][position()<last()] 或者 //*[@id="food"]/*[position()>1 and position()<last()]
//*[@id="food"]/*[position()<=1 or position()>=last()]
4、属性选择器:可以根据元素的属性及属性值来选择元素
//span[contains(@class,"name")] #包含
//span[starts-with(@class,"name")] #开头
#结尾---浏览器未实现,只能用css
5、相邻兄弟选择器
//*[@id="food"]/following-sibling::div 选择id=food的后面的兄弟div元素(多个)
//*[@id="food"]/following-sibling::div[1] 选择id=food的后面的兄弟div元素中的第一个,下标从1开始
//*[@id="food"]/preceding-sibling::div 选择id=food的前面的兄弟div元素(多个)
//*[@id="food"]/preceding-sibling::div[1] 选择id=food的前面的兄弟div元素中的离的最近的一个,下标从1开始,下标越大,距离越远
6、父元素 ..
//*[@id="food"]/.. 选择id=food的父元素
7、局部查找 .//
es=ele.find_elenments_by_xpath(‘.//span‘) #相对路径,前面需要加点 .
1、输入操作:点击、输入文字、拖拽
driver.back() #后退
driver.forward() #前进
driver.refresh() #刷新
driver.get_screenshot_as_file(r‘D:\baidu.png‘) #页面截图,保存路径为D:\baidu.png,注意图片格式为png
ele.screenshot(r‘D:\baidu2.png‘) #元素截图,先定位元素,后根据元素截图,保存路径为D:\baidu2.png,注意图片格式为png
driver.maximize_window() #最大化
driver.minimize_wndow() #最小化
driver.set_window_size(800,600) #设置指定的尺寸大小
2、输出操作:获取元素的各种属性
text属性:显示该元素在web页面显示出来的文本内容
get_attribute方法
1、某个属性的值
ele.get_attribute(‘href‘) #获取属性href的值
2、该元素对应html源代码 #等于本身+内部部分↓
ele.get_attribute(‘outerHTML‘)
3、该元素的内部部分的HTML源代码
ele.get_attribute(‘innerHTML‘)
print(driver.title) :获取网页的标题,即head里的title里的文本信息
print(driver.current_url) :获取当前窗口的url
获取窗口尺寸:
size=driver.get_window_size() print(f‘高度{size["height"]},宽度{size["width"]}‘)
获取元素尺寸:
e_size=ele.size print(f‘高度{e_size["height"]},宽度{e_size["width"]}‘)
获取窗口位置(窗口左上角坐标):
loc=driver.get_window_position() print(f‘坐标x:{loc["x"]},y:{loc["y"]}‘)
获取元素坐标(元素左上角坐标):
e_loc=ele.location print(f‘元素坐标是x:{e_loc["x"]},y:{e_loc["y"]}‘)
3、文本框操作
ele.send_keys(‘你好‘) #输入
ele.clear() #清除
ss=ele.get_attribute(‘value‘) #获取文本框内的文本
4、单选框操作(type为radio类型)
ele.click() #点击,即为选择操作
ele.is_selected() #判断是否被选中,结果为True或False
5、多选框(type为checkbox)
ele.click() #点击,即为选择操作,操作前需要先获取选择状态
ele.is_selected() #判断是否被选中,结果为True或False
6、select选择框(标签为select) multiple代表可多选,没有则只能单选
先导入类:from selenium.webdriver.support.select import Select
参数化:sel=Select(se)
调用方法:
sel.select_by_visible_text(‘自行车‘) #选择‘自行车’
sel.deselect_by_visible-text(‘火车‘) #取消选择‘火车’
sel.select_by_index(0) #选择第一个,下标从0开始
sel.deselect_all() #全部取消选择
ops=sel.all_selected_options #返回所有被选择的元素 for op in ops: print(op.text) 打印元素文本
标签:选中 获取元素 ext 等价 通过 win radio 文本 scree
原文地址:https://www.cnblogs.com/guang2508/p/13205587.html