web自动化--各种控件 &定位三种弹框提示

各种控件:

下拉框:

大部分可以通过先点击下拉框,再点击选项进行操作

通过下标,value,文本,取值:

 sel = driver。find_element(By.ID,'select')#先找到下拉框 
 select = Select(sel)创建select可选对象
 select.select_by_index(2)#取下拉框里面的值,下标从0开始,直接选中 
 select.select_by_value("属性值")#通过value定位 select.select_by_visivle_text("文本值")

多选下拉框用法同上


 select.select_by_visible_text("选项1") 
 select.select_by_index(2)                                               select.select_by_value("option2") #取消选项
 select.deselect_by_visible_text("选项1")                    select.deselect_by_value("option2") 
select.deselect_by_index(2)

同样属性值元素过多,定位不到元素时,可以尝试找元素的上一级先定位,排除部分不想定位的元素

 import time from selenium
 import webdriver from selenium.webdriver.common.by 
 import By from selenium.webdriver.support.wait 
 import WebDriverWait from selenium.webdriver.support import expected_conditions as ec   driver = webdriver.Chrome() driver.get("http://novel-admin.hctestedu.com/login")  driver.find_element(By.NAME,'username').send_keys('测试权限账号') driver.find_element(By.NAME,'password').send_keys('ceshiquanxianzhanghao') 
while True: 
if input()=='ok':
 break driver.find_element(By.ID,"login").click() 
time.sleep(3) 
 driver.find_element(By.XPATH,'//*[text()="系统管理"]').click() time.sleep(2)  
 driver.find_element(By.XPATH,'//*[text()="数据权限"]').click() time.sleep(3) #切换iframe WebDriverWait(driver,10).until(ec.frame_to_be_available_and_switch_to_it((By.NAME,"iframe3"))) 
#点击下拉框 
driver.find_element(By.ID,'moduleName_chosen').click() 
time.sleep(2) 
#获取下拉框 alist=driver.find_element(By.CSS_SELECTOR,".chosen-results") 
time.sleep(3) 
alist.find_element(By.XPATH,"//*[@data-option-array-index='2']").click()

注意:有readonly属性是需要去掉该属性,通过以下js方法:

 driver.execute_script(""" var input=document.getElementById("deptName")  input.removeAttribute("readonly") """)

需注意:去掉只读属性后,控件变为可输入控件,需要写输入脚本输入内容,而不是点击或其他操作!

窗口跳转:


all_handles= driver.window_handles driver.switch_to.window(all_handles[-1]) #可以跳转到新建的窗口

如果遇到多层iframe嵌套,一级一级从A进入到C后,又想进入B,可以用driver.swich_to.parent_frame 退回;

如果要退回到A,可以driver.swich_to_default_content()


driver = webdriver.Chrome() 
driver.get("xxxxxxxxxxxxxxx")#登录页面 driver.find_element(By.NAME,'username').send_keys('测试权限账号')#输入账号 driver.find_element(By.NAME,'password').send_keys('ceshiquanxianzhanghao')#输入密码 
#使用循环等待输入验证码 
while True:
 if input()=='ok':
 break 
driver.find_element(By.ID,"login").click()#点击登录
 time.sleep(3) 
driver.find_element(By.XPATH,'//*[text()="系统管理"]').click() 
time.sleep(2)
 #定位至用户管理 
driver.find_element(By.PARTIAL_LINK_TEXT,'用户管理').click()
 time.sleep(2)
 #定位iframe 
driver.find_element(By.NAME,'iframe1')
 time.sleep(2)
 driver.switch_to.frame('iframe1')#写入iframe1 
time.sleep(2) 
driver.find_element(By.XPATH,'//*[@type="button" and @class="btn btn-primary"]').click()#点击添加按钮 
time.sleep(2) 
 driver.find_element(By.ID,'layui-layer-iframe2')#定位iframe2 time.sleep(2)                
 driver.switch_to.frame('layui-layer-iframe2')#切入iframe2 time.sleep(2)  
 driver.find_element(By.ID,'name').send_keys('ceshi1')#输入用户名 time.sleep(2)  
 driver.find_element(By.ID,'username').send_keys('ceshi222') time.sleep(2) 
 driver.find_element(By.ID,'password').send_keys('123456') driver.execute_script(""" var 
 input=document.getElementById("deptName") input.removeAttribute("readonly") """)#去掉部门名称只读属性 #选择部门 time.sleep(2) dept_name=driver.find_element(By.ID,'deptName')#定位部门名称输入框 dept_name.send_keys("测试二部") time.sleep(2)  
 driver.find_element(By.ID,'email').send_keys('123456@163.com') time.sleep(2) 
 driver.find_element(By.XPATH,'//*[@name="status" and @value="1"]').click() time.sleep(2) 
 driver.find_element(By.XPATH,'//*[@name="role" and @value="9"]').click() time.sleep(2) 
 driver.find_element(By.XPATH,'//*[@name="role" and @value="8"]').click() time.sleep(4) 
 driver.find_element(By.XPATH,"//*[text()='提交']").click()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值