今天是超级郁闷的一天

看教程

下了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...的更多相关文章

  1. 2019.02.07 bzoj1487: [HNOI2009]无归岛(仙人掌+树形dp)

    传送门 人脑转化条件过后的题意简述:给你一个仙人掌求最大带权独立集. 思路:跟这题没啥变化好吗?再写一遍加深记忆吧. 就是把每个环提出来分别枚举环在图中的最高点选还是不选分别dpdpdp一下即可,时间 ...

  2. 2019.02.07 bzoj4784: [Zjoi2017]仙人掌(仙人掌+树形dp)

    传送门 题意:给一个无向连通图,问给它加边形成仙人掌的方案数. 思路: 先考虑给一棵树加边形成仙人掌的方案数. 这个显然可以做树形dp. fif_ifi​表示把iii为根的子树加边形成仙人掌的方案数. ...

  3. 2019.02.07 bzoj4316: 小C的独立集(仙人掌+树形dp)

    传送门 题意:给出一个仙人掌森林求其最大独立集. 思路:如果没有环可以用经典的树形dpdpdp解决. fi,0/1f_{i,0/1}fi,0/1​表示第iii个点不选/选的最大独立集. 然后fi,0+ ...

  4. [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理

    在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...

  5. [2017.02.07] Lua入门学习记录

    #!/home/auss/Projects/Qt/annotated/lua -- 这是第一次系统学习Lua语言 --[[ 参考资料: 1. [Lua简明教程](http://coolshell.cn ...

  6. 梦想MxWeb3D协同设计平台 2019.02.28更新

    梦想MxWeb3D协同设计平台 2019.02.28更新 SDK开发包下载地址: http://www.mxdraw.com/ndetail_10130.html 在线演示网址: http://www ...

  7. 【算法训练营day4】LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表II

    [算法训练营day4]LeetCode24. 两两交换链表中的结点 LeetCode19. 删除链表的倒数第N个结点 LeetCode面试题 02.07. 链表相交 LeetCode142. 环形链表 ...

  8. 开机时自动启动的AutoHotkey脚本 2019年07月08日19时06分

    ;;; 开机时自动启动的AutoHotkey脚本;; 此脚本修改时间 2019年06月18日20时48分;; 计时器创建代码段 ------------------------------------ ...

  9. 【2019年07月22日】A股最便宜的股票

    查看更多A股最便宜的股票:androidinvest.com/CNValueTop/ 便宜指数 = PE + PB + 股息 + ROE,四因子等权,数值越大代表越低估. 本策略只是根据最新的数据来选 ...

  10. 02/07/2106 @ 6:28am (UTC)

    <?php echo pow(2,32); 4294967296 http://www.unixtimestamp.com/index.php 4294967296 Is equivalent ...

随机推荐

  1. Spring @Qualifier 注释

    可能会有这样一种情况,当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配. 在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指 ...

  2. 常用的body和通用css设置

    body{ min-width: 320px; width: 15rem; margin: 0 auto; line-height: 1.5; background: #f2f2f2; overflo ...

  3. 基于Unity实现油画风格的着色器

    // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Cust ...

  4. DevOps生命周期,你想知道的全都在这里了!

    在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时. 为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期. 那么,DevOps在软件应用程序开 ...

  5. [注]6W运营法则教你盘活社区内容运营

    社区运营人员大体分为两种:一种是内容运营,这类人才基于产品,一般对文字以及对广告文案比较敏感:另外一种则是更多基于产品推广运营,前者需要把内容最大化地曝光,后者则是把产品推送给用户,两者的是相辅相成, ...

  6. 求最长非降(递增)子序列LIS的长度,及注意事项

    非降序列(Increasing Sequence)例如: (1) 完全递增型序列:S={1,3,6,7,9} (2) 部分存在等于的序列:S={1,3,3,6,9} S的非降子序列:由原序列S的元素组 ...

  7. python初学者笔记(2):阿拉伯数字转换成中文大写

    题:输入一个数字,转换成中文大写的写法 可运行的程序(Python 2.7.9): # -*- coding: utf-8 -*- #在python2的py文件里面写中文,必须要添加一行声明文件编码的 ...

  8. Java实现 LeetCode 279 完全平方数

    279. 完全平方数 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, -)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: ...

  9. Java实现简易计算器

    import java.util.Scanner; public class Demo_1 { public static void main(String[] args) { //输入的两个数字进行 ...

  10. 类似-Xms、-Xmn这些参数的含义:

    类似-Xms.-Xmn这些参数的含义: 答: 堆内存分配: JVM初始分配的内存由-Xms指定,默认是物理内存的1/64 JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4 默认空余堆内存小于 ...