selenium_06_课堂笔记

用了等待用在所有窗口是之前

没有用等待;是所有窗口之后

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+文件路径)
原文地址:https://www.cnblogs.com/zhang-ping1205/p/14514588.html