2019-02-07 selenium...
今天是超级郁闷的一天
看教程
下了mysql-----配置-----不会----查资料------2小时后
mongodb-----配置------不会------查资料------1小时后
然后是各种相关软件的下载配置—然后懒得搞了。。
于是乎开始看
selenium
简单的模拟一下chrome----报错
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
print(browser.page_source)
browser.close()
甩一个
'chromedriver' executable needs to be in PATH
ok,发现没下载chromedriver-----下载------版本错了-----继续下载----环境变量配置------还是不行-----百度-------循环上述操作------最后发现需要手动加路径
from selenium import webdriver
browser = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver')
browser.get("http://www.baidu.com")
print(browser.page_source)
browser.close()
看到百度一闪而过…???
成功了哈哈哈哈
但是我今天学了些啥呢??
果然还是心急吃不了热豆腐,不要想着一天就能搞定一个东西,循序渐进吧。。。
"""
selenium
自动化测试工具,支持多种浏览器
爬虫中主要用来解决javascript渲染的问题
"""
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
#声明浏览器对象
browser = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver')
"""
还有Firefox,Edge,Safari.....
"""
try:
# 访问页面
browser.get(r"https://www.taobao.com")
# 查找元素
input = browser.find_element_by_id('q') # 找到名字为kw的元素
"""
可选:
find_element_by_[name,xpath,link_text,partial_link_text,tag_name,class_name,css_selector]
或者
find_element(By.ID,'q')
如果要获取多个元素:
find_elements 即可,其他同上
"""
# 元素交互操作
input.send_keys('Python') # 模拟键盘敲入Python
time.sleep(1)
input.send_keys('ipad')
time.sleep(1)
input.send_keys(Keys.ENTER)
"""
1.clear()
用途:清除文本,如在输入用户名、密码之前,清除相应的输入框
语法:element.clear()
2.sendkeys()
用途:模拟用户输入,如输入用户名、密码等。
语法:element.sendkeys("123"),向输入框中输入123
3.click()
用途:模拟用户点击,如点击登录按钮。
语法:element.click()
4.submit()
用途:用于提交表单,如在搜索框输入关键字后,点击回车,就可以通过submit()模拟。
语法:element.submit()
5.size
用途:获取元素的尺寸,如:UI测试时,要获取输入框的尺寸,就可以用size方法。
语法:element.size
6.text
用途:获取元素文本信息,如输入不合法信息,提交表单,可以用text获取提示信息。
语法:element.text
7.get_attribute()
用途:获取元素的属性,可以用于获取元素的id、name、type等任意属性。
语法:element.get_attribut("id"),获取改元素的id。
8.is_displayed()
用途:设置元素用户是否可见,返回结果为Ture或False
语法:element.is_dispiayed()
from 高可乐的爸爸
"""
# 交互动作:将动作附加到动作链中串行执行
# 执行JS:通过js代码执行相关操作(万能)
#等待:
#隐式等待和隐式等待
wait = WebDriverWait(browser,10)
wait.until(EC.presence_of_element_located((By.ID,'content_left'))) #等待加载
"""
前进后退
选项卡管理
cookies
异常处理
"""
print(browser.current_url)
print(browser.get_cookies())
print(browser.page_source)
finally:
browser.close()
ohohohohoh what a weary day
2019-02-07 selenium...的更多相关文章
- 2019.02.07 bzoj1487: [HNOI2009]无归岛(仙人掌+树形dp)
传送门 人脑转化条件过后的题意简述:给你一个仙人掌求最大带权独立集. 思路:跟这题没啥变化好吗?再写一遍加深记忆吧. 就是把每个环提出来分别枚举环在图中的最高点选还是不选分别dpdpdp一下即可,时间 ...
- 2019.02.07 bzoj4784: [Zjoi2017]仙人掌(仙人掌+树形dp)
传送门 题意:给一个无向连通图,问给它加边形成仙人掌的方案数. 思路: 先考虑给一棵树加边形成仙人掌的方案数. 这个显然可以做树形dp. fif_ifi表示把iii为根的子树加边形成仙人掌的方案数. ...
- 2019.02.07 bzoj4316: 小C的独立集(仙人掌+树形dp)
传送门 题意:给出一个仙人掌森林求其最大独立集. 思路:如果没有环可以用经典的树形dpdpdp解决. fi,0/1f_{i,0/1}fi,0/1表示第iii个点不选/选的最大独立集. 然后fi,0+ ...
- [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理
在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...
- [2017.02.07] Lua入门学习记录
#!/home/auss/Projects/Qt/annotated/lua -- 这是第一次系统学习Lua语言 --[[ 参考资料: 1. [Lua简明教程](http://coolshell.cn ...
- 梦想MxWeb3D协同设计平台 2019.02.28更新
梦想MxWeb3D协同设计平台 2019.02.28更新 SDK开发包下载地址: http://www.mxdraw.com/ndetail_10130.html 在线演示网址: http://www ...
- 【算法训练营day4】LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表II
[算法训练营day4]LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表 ...
- 开机时自动启动的AutoHotkey脚本 2019年07月08日19时06分
;;; 开机时自动启动的AutoHotkey脚本;; 此脚本修改时间 2019年06月18日20时48分;; 计时器创建代码段 ------------------------------------ ...
- 【2019年07月22日】A股最便宜的股票
查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 便宜指数 = PE + PB + 股息 + ROE,四因子等权,数值越大代表越低估. 本策略只是根据最新的数据来选 ...
- 02/07/2106 @ 6:28am (UTC)
<?php echo pow(2,32); 4294967296 http://www.unixtimestamp.com/index.php 4294967296 Is equivalent ...
随机推荐
- vscode环境配置(三)——解决控制台终端中文输出乱码
由于系统终端默认编码为GBK,所以需要修改为UTF-8 方法一 打开cmd输入chcp查看编码格式,查看以及修改如下图所示: 方法二
- 一个茴字有三种写法——吐槽C#9.0的Records
最近是微软开了Build 2020大会,由于疫情原因,改成了在线举行,Build大会上,C#公布9.0版本. 我个人对于C#的更新向来都是喜闻乐见,乐于接受的,对于博客园上某些人天天嘲讽C#只会增加语 ...
- js常用 方法 封装
// 监听滚动,用于列表页向下加载--------------------------------- function loadmore(callback) { $(window).scroll(fu ...
- 【译】OWIN: Open Web Server Interface for .NET
主要是使用 OAuth 时,它运行在 OWIN 上,然后又出了若干问题,总之,发现对 IIS.ASP.NET 和 OWIN 理解一塌糊涂. 后面看到 OWIN: Open Web Server Int ...
- lunix如何查看防火墙是否关闭和关闭开启防火墙命令
查看防火墙是否关闭的命令如下: 1.通过 /etc/init.d/iptables status 或者 service iptables status命令 2.通过 iptables -L命令 查看 ...
- nginx 搭建图片服务器(windows 下,linux 下原理应该一样)
作者的心声:很多知道的.用过的东西,不写下来,下次还要百度查询,浪费时间和精力,故本次写下学习笔记,方便下次查阅. 题外话:如有读者通过我这篇博客解决了工作上的难题,可以给个评论,让我一起分享你的喜悦 ...
- 50个SQL语句(MySQL版) 问题十一
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- fix元素居中
今天的一个面试题,我是这么写的: div{ position:fixed; margin:auto; left:; right:; top:; bottom:; width:200px; height ...
- Java实现 LeetCode 717 1比特与2比特字符(暴力)
717. 1比特与2比特字符 有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 11)来表示. 现给一个由若干比特组成的字符串.问最后一个字符是否必定为一个一比特字符. ...
- Java实现 LeetCode 278 第一个错误的版本
278. 第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. ...