用了等待用在所有窗口是之前 没有用等待;是所有窗口之后 web自动化面试题:报错;无法定位到元素,出现的原因可能有哪些? -1、元素定位的表达式是否正确 怎么确定:在浏览器中,检查找元素是否唯一 ctrl+f -2、元素表达式是否正确,检查是否设置了等待 (隐性等待,sleep) -3、元素是否在另一个窗口(driver.window_handles) -4、是否在iframe里面(比如两种登方式:账号/密码;或者微信登录)检查元素/(ctrl+f) //iframe--看下 -5、检查是否会(动态)自动变化(1、表达式是否会变化---需要替换表达式2、前端需要加载才会出现:比如:动态加载:滑动查能看到3、悬浮的定位方式:鼠标放在方面才会出现) 注册验证码: 1、先让开发关掉验证码 2、开发设置万能验证码 3、使用第三方的解码平台-超级鹰(接口) 4、复杂的就没有办法搞(12306--人工都无法识别-机器也不行) vs code 或者pycharm专业版 webstom 鼠标点击事件:on开头 <h2 onclick = "myAlert">hello world</h2> onmouseover--鼠标悬浮 <script> function myAlert() let name = "荒年"; alert(name); if(name = 'xiuer'){ alert(’秀儿跑路了‘); }else{ alert("hello,world"); } </script> dom对象: 类和对象: 一切皆为对象 chrome() firefox() js--打开任意的窗口--封装为一个对象: 窗口--叫做对象-window document对象的操作 >> window.location ---获取某些属性(url为例) “”“--python的字符串 ’‘’<html></html>‘’‘ 文档--document(dom-)文档变成对象 整个html是一个对象:标签也是对象,可以用dom来调用 元素;文本;属性---节点;注释--#注释节点 >> document.body >> document.body.innerHTML ="hello world" >> el = document.getMyelemenById(”su“) >> el.click() >> el.className(”修改值“) >> el = docment.querySelector(”#kw“) -css选择器查找 >> el = docment.get---类似python与八大元素find_elemont 如何操作一个对象:--输入/点击 开发部署远程代码--一次修改生效: -方法: -属性:获取属性;修改属性 对象的方法可以修改 时间控件定位: 控制台操作:自动化上是没用--使用与浏览器控制台 >> $0.cilk---箭头符号的倒数第一个元素 找不到日期输入: 修改:value =”2021-3-10“--把readonly删掉 >>input =docment.getelemnetbyid("train_date") >>input.readonly =false >>input.value ="2021-3-10" import time from selenium import webdriver driver = webdriver.chorme() driver.get("网站") # js 执行就是语句写上日期 time.sleep(3) js_code ="let input =docment.getelemnetbyid("train_date");input.readonly =false;input.value ='2021-3-10'" time.sleep(3) # 可以把python和js混用 input_elem = driver.find_element("id","train_date") time.sleep # 准备js 代码 js_code =”arguuments[0].readonly=false;”arguuments[0].value = ’2021-03-22;‘” driver.execute_script(js_code,input_elem) time.sleep(3) # 窗口滚动--懒加载方式: --scrollBy--滚动--像素 500PX --scrollTo--滚动到 100PX #【反弹最新的话题加载出来导致】 # 【0,500】 >>window.scrollTo(0,500)#宽度不变;高度变化【上下滚动】 #【最底部】 >>windoe.scrollTo(0,body.scrollHeight)# 运行到窗口的最底部 #【中间位置】 >>windoe.scrollTo(0,body.scrollHeight/2) # 可视范围内--去点击 比如友情链接: #找到需要定位的元素 el = driver.find_element('xpath',"//h2[contains(text(),'友情链接')]") #滚动到可视范围内 el.location_once_scrolled_into_view time.sleep(3) # 文件上传 # input 可以直接通过 send_keys 发送文件路径 <input>id= "myfile"</input> f = driver.find_element('id','myfile') f.send_keys(r+文件路径)