2023年7月26日发(作者:)
selenium史上⾮常全⾮常全⾯的常⽤命令【持续更新】webdriver常⽤的类Webdriver类 :元素定位、打开浏览器、元素获取,切换页⾯ActionChains类 :⿏标操作、悬停、点击、双击、右击等select类 :下拉框的处理switchTo类:⽤来做切换,不同的表单、窗⼝- Webdriver类 :元素定位、打开浏览器、元素获取,切换页⾯from selenium import webdriverdr = x()()获取打开url⽹页_windows_size()设置浏览器窗⼝⼤⼩_element_by_id(‘kw’).clear()#清除内容_element_by_id(‘su’).click()#点击_element_by_id(‘kw’).send_keys(‘测试’) #发送⽂字内容t_url 当前浏览器的url连接 #⽹页标题_element_by_id(‘kw’).text #元素⽂本_element_by_id(‘kw’).content #元素原⽹页⽂本h #刷新_screenshot(‘d://’) #屏幕截图t_window_handle#当前窗体_handles #所有窗体() #提交close()关闭单个窗体quit()关闭所有的窗体元素的定位以及操作idnameclassnamelinktextpartiallinktexttagnamecssselectorxpath通过元素的ID定位元素:findElement((“ele”));通过元素的名称定位元素:findElement((“ele”));通过元素的html中的位置定位元素:findElement((“ele”));通过元素的标签名称定位元素:findElement(e(“ele”));通过元素的链接名称定位元素:findElement(xt(“ele”));通过元素的类名定位元素:findElement(ame(“ele”));通过元素的css定位元素:findElement(ector(“ele”);通过元素的部分链接名称定位元素:findElement(lLinkText(“ele”));对ID为ele的元素进⾏点击操作:ement((ele));存储勾选情况:cted()验证元素是否可展⽰:layed()获取标签名称:Name()获取指定属性的值:ribute()存储可编辑状态:led()操作⿏标事件#导⼊⿏标基类from _chains import ActionChains#把浏览器驱动传ActionChains,调⽤__init__⽅法实现⿏标悬停ActionChains(driver).move_to_element(ele).perform()#将⿏标向右挪动100像素,向下挪动10像素ActionChains(driver).move_to_element_with_offset(ele,100,10)#双击ActionChains(driver).double_click(ele).perform()#右击ActionChains(driver).context_click(ele).perform()#拖动滑块#先定位到这个滑块,往右拖动200像素ele2 = _element_by_name(‘name’)ActionChains(driver).drag_and_drop_by_offset(ele,200,0).perform()#拖动滑块,从⼀个元素的位置开始拖动到另⼀个元素的位置停⽌ele_start = _element_by_name(‘name’)ele_end = _element_by_name(‘name2’)ActionChains(driver).drag_and_drop(ele_start,ele_end)键盘事件#导⼊键盘事件from import Keys#输⼊字符_element_by_name(‘name’).send_keys(‘text’)#退格_element_by_name(‘name’).send_keys(_SPACE)#输⼊空格_element_by_name(‘name’).send_keys()#全选,ctrl+_element_by_name(‘name’).send_keys(L,‘a’)#复制_element_by_name(‘name’).send_keys(L,‘c’)#粘贴_element_by_name(‘name’).send_keys(L,‘v’)#回车_element_by_name(‘name’).send_keys()三种时间的等待⽅式import time等待两秒,显⽰等待(2)#隐式等待,等待元素已经出来了再运⾏,超过时间报错,时间内加载完成则继续进⾏#如果后⾯没有其他类型的等待设置,则默认是全局性的参数,后⾯的动作都会按这个设定进⾏等待itly_wait(10)#webdriver⾃带的时间等待from import WebDriverWaitfrom t import expected_conditions as ECfrom import By#调⽤driver,等待5秒,每5秒时间检测⼀次,直到这个元素出现,如果取反则⽤until_not(直到这个空间不出现)testWite = WebDriverWait(driver,5,0.5).until(ce_of_all_elements_located(,‘id’))多窗⼝形态#打印当前窗体信息(所有的窗体信息),如果有多个值显⽰的是listprint(_handles)#打印当前焦点所在的窗体信息print(t_window_handle)#切换窗体,后⾯是⽬前已经打开窗体的列表_(_handles[1])#⼩应⽤:切换窗体到最初的url页的窗体now_handle = t_window_handle#click其它窗体all_handles = _handlesfor handle in all_handels:if handle == now_handle:_(handle)alert弹出框#切换到alert弹出框,输⼊⽂本__keys(‘text’)#获取alert翻出框的⽂本信息_#获取确定按钮_()#获取取消按钮_s()#截图保存,注意alert弹窗是没法截图的_screenshot_as_file(“c:/ven/”)iframe的相关操作#第⼀种⽅式:有ID和name的属性值_(‘id/name’) #如果id是动态变化的不能直接这样⽤#第⼆种⽤法;先定义到这个iframe所在的控件属性,在执⾏切换到这个iframefm = _element_by_xpath(‘xpath’)_(fm)#切换到这个iframe后就可以操作这个控件了_element_by_xpath(‘x’).send_keys(‘name’)#第三种⽅法:通过定位元素的tagname来找到所有iframe列表,再切换到⾃⼰想要的那个iframefm = _element_by_tag_name(‘iframe’)_(fm[1])#从⼦iframe切换到⽗__frame()#切换到主⽂档_t_content()#时间框的处理:定位到这个控件以后,清空,重新输⼊值_element_by_name(‘name’).send_keys(‘2020-02-24’)#有的输⼊框带readonly属性,先调⽤js来去掉readonly的属性#调⽤js找到页⾯元素删除页⾯元素的相关属性el = _element_by_name(‘name’)js = “mentByTagId(‘id’)[0].removeAttribute(‘readonly’)” #有ID的控件js = “mentsByName(‘name’)[0].removeAttribute(‘readonly’)” #有name的控件,定位元素⼀定要⽤复数js = “mentsByTagName(‘input’)[0].removeAttribute(‘readonly’)” #通过定位控件的标签来定位元素#每种⽅法读取e_script(js)_keys(‘aaaa’)验证码的处理思路:通过接⼝请求拿到对应的验证码信息、让开发给万能码、注⼊cookies#如何注⼊cookieimport (‘’)#设置⼀个⽐较长的等待时间,在登录页⼿⼯去输⼊账号、密码和验证码(60)#⼿⼯登录成功后获取cookie的信息,并保存起来cookies = _cookies()cookies_json = (cookies)with open(‘’,‘w’) as f:(cookies_json)#读取cookies存储的json⽂件,再逐个添加到cookie中,达到像我们平时不⽤登录打开⽹页就保持了登录效果⼀样的效果。with open(‘’,‘r’) as f:cookieInfor = (())#遍历cookie列表,添加cookiefor cookie in cookieInfor:_cookie(cookie)#页⾯刷新h()⽂件处理#如果是input标签,type是file类型,则直接可以通过send_keys来发送路径上传_element_by_name(‘file’).send_keys(‘D:/’)#⾮input标签autolt去上传⽂件#下载autolt软件,打开以后拖动光标到浏览路径的位置,可以看到相关信息#打开autoscript编辑器,写脚本,保存⽂件,在保存为exe⽂件import _element_by_name(‘updata’).click()#点击上传⽂件(5)(“D:”)#调⽤system⽅法如何移动滚动条#已送到页⾯的底部,设置⼀个⾮常⼤的值去移动滚动条js = “var q = Top = 10000”e_script(js)#相对当前坐标移动到坐标e_script(“By(0,500)”)#以当前位置为基点,偏移到相关的位置e_script(“By(0,Height*0.5)”)#移动到绝对坐标e_script(“To(0,1500)”)#⾃动化‘’’先拿到⼿⼯测试⽤例,来标注那个⽤例需要⽤到⾃动化‘’’
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690362870a338034.html
评论列表(0条)