前言
一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210415
【Selenium核心技术篇】包含以下内容:
- Selenium实现元素定位(8种)
- Selenium WebDriver
- Selenium WebElement
- Selenium操作from表单
- Selenium操作checkbox和radiobutton
- Selenium操作下拉列表
- Selenium处理弹框
- Selenium三种等待方式
- Selenium等待条件
- Selenium鼠标和键盘事件
- Selenium执行JavaScript脚本
- Selenium屏幕截图
- Selenium之frame的切入和切出
Selenium执行javaScript
WebDriver有两个方法来执行JavaScript,分别是:
- execute_script(同步执行)
- execute_async_script(异步执行)
实操:通过JavaScript实现页面滚动,JavaScript操作滚动条:
from selenium import webdriver
from time import sleep
class casetest(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get('http://wwww.baidu.com')
def test_execute1(self):
self.driver.execute_script("alert('test')") # 同步执行
sleep(2)
self.driver.switch_to.alert.accept()
def test_execute2(self):
js ='return document.title'
title = self.driver.execute_script(js) # 取到百度的title
print(title)
def test_execute3(self):
js ='var q=document.getElementById("kw");q.style.border="2px solid red"'
self.driver.execute_script(js) # 把百度搜索边框变为红色
sleep(2)
def test_execute4(self):
# 滚动条滚动
self.driver.find_element_by_id('kw').send_keys('留白')
self.driver.find_element_by_id('su').click()
sleep(2)
# 滚动到底部
js = 'window.scrollTo(0,document.body.scrollHeight)'
self.driver.execute_script(js)
sleep(2)
if __name__ == '__main__':
case = casetest()
# case.test_execute1()
# case.test_execute2()
# case.test_execute3()
case.test_execute4()
case.driver.quit()