目录
1.断言
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('http://39.98.138.157/shopxo/index.php')
driver.find_element('link text','登录').click()
driver.find_element('name','accounts').send_keys('sixiaoyou')
driver.find_element('name','pwd').send_keys('xxx')
driver.find_element('xpath','//button[text()="登录"]').click()
# 断言部分
# 定义预期结果,并获取实际结果
expected = '退出1'
try:
reality = driver.find_element('link text','退出1').text
except Exception as e:
print(e)
reality = None
# 关键的断言关键字
assert expected == reality,'断言失败:{0}不等于{1}'.format(expected,reality)
#--coding: utf-8--
#@Time :2022/7/17 21:24
#@Author: sixiaoyou
#@Email: 834628301@qq.com
#@File: js_demo.py
2.JS执行器
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.set_window_size(800,300)
driver.get('http://www.baidu.com')
1.document对象执行的常见函数
'''
1.removeAttribute(attribute_name) 移除指定对象的指定属性
2.setAttribute(attribute_name,value) 设置指定对象的指定属性和值
3.arguments[0] 在js中可以理解为占位符 有且只能这么写
4.滚动条操作:
window.scrollTo(x,y) x表示横轴,横向滚动条 y表示纵轴,上下滚动条
arguments[0].scrollIntoView()精确定位到元素,并聚焦在页面中展示
js执行器在实际执行过程中,如果想要获取执行结果,便于后续的使用,就一定要在js中添加return关键字
滚动条操作的核心在于元素的获取,不是在于玩弄滚动条
'''
2.设置元素的属性
# js = "document.getElementById('kw').setAttribute('readonly','True')"
3.移除元素的属性
# js = "document.getElementById('kw').removeAttribute('name')"
4.定位元素,并修改元素的文本
# el = driver.find_element('link text','新闻')
# 获取指定元素的文本信息
# js = 'return arguments[0].innerHTML="司小幽新闻"'
# 通过占位符来实现selenium与document的关联
# js1 = 'arguments[0].innerHTML="司小幽新闻"'
5.用于执行js语句的函数
# a = driver.execute_script(js,el)
# print(a)
6.滚动条
driver.find_element('id','kw').send_keys('虚竹')
driver.find_element('id','su').click()
el = driver.find_element('link text','下一页 >')
7.获取元素的指定属性值
text = el.get_attribute('href')
print(text)
8.定位元素,并在页面中心显示
js = 'arguments[0].scrollIntoView()'
driver.execute_script(js,el)
3.应对反爬虫
# 通过修改webdriver属性为False,一定是在访问系统之前,在启动浏览器后第一步就是运行这个
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{
"source": """
Object.defineProperty(navigator,'webdriver',{
get: () => false
})
"""
})