Python|爬虫和测试|selenium框架模拟登录示例(一)

前言:
上一篇文章
Python|爬虫和测试|selenium框架的安装和初步使用(一)_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用,主要是打开某个网站的主页,基本是最基础的东西,那么,这篇文章里就写一点更加深入的东西吧。

主要是介绍比如,selenium网页刷新,模拟登录csdn,元素定位等等内容

一,

无头浏览器

什么是无头浏览器呢?其实就是selenium后台启动一个浏览器,该浏览器看不到,以节约测试用机的资源。

options.add_argument("headless")主要是这个,其次是截图,截图保存在了d盘,否则不知道是否确实运行了

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
driver.get_screenshot_as_file('d:\\截图.png')

 

 

二,

刷新页面

关闭无头,以在前台观察是否确实刷新,增加刷新代码,主要是driver.refresh()方法

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

执行完毕后,cmd的截图:

表明确实刷新了页面

 三,

csdn首页输入框输入指定字符

 

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')

运行结果如下:

 四,

点击搜索

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')
driver.find_element(By.XPATH,'//*[@id="toolbar-search-button"]').click()

网页源代码内相关内容如下:

 运行结果如下:

说我没有登录,OK,这就登录一下 

五,

selenium登录csdn

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')
#driver.find_element(By.XPATH,'//*[@id="toolbar-search-button"]').click()
login=driver.find_element(By.XPATH, "//*[@class='toolbar-btn-loginfun']")
#login=driver.find_element_by_class_name('toolbar-btn-loginfun')
login.click()

网页源代码相关内容如下:

 运行效果如下:

 未完待续!!!!


http://www.niftyadmin.cn/n/4973222.html

相关文章

Matlab图像处理-代数运算

代数运算 图像的代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法,对于相加和相乘的情形,可能有多幅图像参加运算。 它们运算的数学表达式如下: S(x,y)A(x,y)B(x,y) S(x,y)A(x,y)-B(x,y) S(x,y)A(x,y)B(x,y) S(x…

python3GUI--PyQt5打包心得(详细图文演示)

文章目录 一.前言二.准备工作&介绍1.准备2.介绍1.pyinstaller2.pipenv 三.项目打包1.准备2.打包1.打包参数2.虚拟环境 三.总结 一.前言 有朋友私信问我,如何把项目打包和如何减小打包后的文件体积。笔…

layUI 中 穿梭框无法获取值的细节问题

初始化的时候一定要指定id,不然就会出现无法调用 获得右侧数据和实例重载的方法

elementui table 在浏览器分辨率变化的时候界面异常

异常点: 界面显示不完整,表格卡顿,界面已经刷新完成,但是表格的宽度还在一点一点变化,甚至有无线延伸的情况 思路: 1. 使用doLayout 这里官方文档有说明, 所以我的想法是,监听浏览…

居中一个元素(水平+垂直居中)

我们的示例代码全在此基础上修改&#xff1a; ...... <style>* {margin: 0;padding: 0;}.par {width: 600px;height: 400px;background-color: antiquewhite;display: flex;justify-content: center;align-items: center;}.chi1 {width: 60px;height: 40px;backgrou…

[管理与领导-52]:IT基层管理者 - 8项核心技能 - 7 - 决策

目录 前言&#xff1a; 一、什么是决策 二、为什么需要管理者的决策 三、什么时候需要管理者决策 四、常见的决策误区 4.1 关于决策的误区 4.2 错误的决策行为 五、如何进行有效决策 六、进行决策的常用方法 前言&#xff1a; 管理者存在的价值就是制定目标&#xff0…

1688API技术解析,实现获得1688商品详情

要实现获得1688商品详情&#xff0c;你需要使用1688 API。1688 API是阿里巴巴旗下的开放平台&#xff0c;它提供了一套丰富的接口&#xff0c;可以让开发者通过编程的方式获取到1688网站上的商品信息。 首先&#xff0c;你需要在阿里开放平台注册一个账号&#xff0c;并创建一…

Linux c++ - 01-开发环境配置

一、环境配置 1.安装gcc,gdb sudo apt update sudo apt install build-essential gdb 安装成功确认 gcc --version g --version gdb --version 2.安装cmake sudo apt install cmake 安装成功确认 cmake --version 3.总结 gcc 用于编译C代码 g 用于编译C代码 VSCode是通…