Selenium 自动化测试(四)

Selenium 执行 Javascript 脚本

WebDriver 有俩个方法执行 Javascript

  • execute_script 同步执行
  • execute_async_script 异步执行

通过Javascript实现页面滚动:

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('http://www.baidu.com')
        self.driver.maximize_window()

    def test_scroll(self):
        self.driver.find_element(By.ID, 'kw').send_keys('selenium')
        self.driver.find_element(By.ID, 'su').click()
        sleep(2)
        js = 'return document.title'
        print(self.driver.execute_script(js))
        js = 'window.scrollTo(0, document.body.scrollHeight)'
        self.driver.execute_script(js)
        sleep(3)
        self.driver.quit()



if __name__ == '__main__':
    case = TestCase()
    case.test_scroll()

Selenium 屏幕截图

在这里插入图片描述

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from time import sleep, strftime, localtime, time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('http://www.baidu.com')
        self.driver.maximize_window()

    def test_screenshot(self):
        self.driver.find_element(By.ID, 'kw').send_keys('selenium')
        self.driver.find_element(By.ID, 'su').click()
        sleep(2)
        curtime = strftime("%Y-%m-%d-%H-%M-%S", localtime(time()))
        self.driver.save_screenshot(f'{curtime}_testScreen.png')
        sleep(3)
        self.driver.quit()

if __name__ == '__main__':
    case = TestCase()
    case.test_screenshot()

Selenium 定位 Frame

在这里插入图片描述

PyAutoGui

安装 >pip install pyautogui
在这里插入图片描述

   elem = self.driver.find_element(By.ID, 'xxx')
   rect = elem.rect
   print(rect)
   pyautogui.click(rect['x'] + 10, rect['y'] + 60)

验证码的处理

使用 pytesseract 和 PIL 模块解决

安装 pytesseract

    pip install pytesseract
    pip install pillow 
  1. 截屏整个页面
  2. 获得验证码坐标
  3. 根据坐标抠图
  4. 用pytesseract模块验证

使用第三方 API 识别图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值