#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/7/16 14:21
# @Author : 大坏男孩
# @File : day2_窗口句柄切换.py
# @Software: PyCharm
# @license : Copyright(C), 未来集团有限公司
# @Contact : 110@163.com import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys # driver = webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
time.sleep(2)
driver.find_element_by_id("kw").send_keys("鸡你太美是什么梗") # driver.window_handles -- 获取浏览器所有窗口的句柄,返回一个列表
window_a = driver.window_handles
# 打印窗口window_a的句柄
print(window_a)
# 在百度输入框后面添加一个value值为ENTER的内容
driver.find_element_by_id("kw").send_keys(Keys.ENTER)
time.sleep(2)
# 搜索界面第一条链接
driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()
window_b = driver.window_handles
# 打印窗口window_b的句柄
print(window_b) # 切换窗口句柄
driver.switch_to.window(window_b[1])
time.sleep(2)
driver.find_element_by_xpath('//span[@id="evaluate-3047402417"]').click()
time.sleep(2)
# # 随意打开栏目等你来答下的一个内容 //*[@id="wgt-ad-right-fixed"]
# driver.find_element_by_xpath('//*[@id="wgt-ad-right-fixed"]/div[1]/ul/li[2]/div/a').click()
# # 切换为原窗口,即返回上一个网页界面
# driver.switch_to.window(window_b[0])
# time.sleep(2)
# driver.find_element_by_xpath('//*[@id="2"]/h3/a').click()
# 点击更多回答
driver.find_element_by_id("show-answer-hide").click()
time.sleep(2)
# # driver.find_elements_by_xpath('//span[@class="evaluate evaluate-32 evaluate-good"]')
# # ls = driver.find_element_by_xpath('//span[@class="evaluate evaluate-32 evaluate-good"]')
# # print(ls)
# # print(type(ls))
ls = driver.find_elements_by_xpath('//b[@class="evaluate-num"]')
print(ls) # 返回列表
print(type(ls)) # 列表
print(len(ls)) # 打印列表ls的长度
# for循环 -->实现循环点赞
n = 1
for i in ls:
if n % 2 != 0:
# print(i)
i.click()
n += 1
# 返回第二页的元素坐标位置
driver.find_element_by_xpath('//*[@id="wgt-answers"]/div/div[5]/a[1]').click()
ls = driver.find_elements_by_xpath('//b[@class="evaluate-num"]')
n = 2
for i in ls:
if n % 2 == 0:
i.click()
n += 1

  

day2_窗口句柄切换的更多相关文章

  1. No.5 selenium学习之路之多窗口句柄

    多窗口相关操作 获取当前句柄 c_handle = driver.current_window_handle 获取所有句柄 all_handle = driver.window_handles 切换到 ...

  2. Selenium WebDriver-获取与切换浏览器窗口的句柄

    通过selenium webdriver去切换浏览器的窗口,需要通过句柄,具体代码如下: #encoding=utf-8 import unittest import time import char ...

  3. python3百度指数抓取

    百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多 ...

  4. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  5. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  6. Selenium2+Python:Webdriver API速记手册

    由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和 ...

  7. 【WebDriver】WebDriver 常用操作

    WebDriver 常用操作 1 浏览器操作 2 窗口和弹框操作 3 cookies 操作 4 简单对象的定位 5 页面元素操作 6 鼠标事件 7 键盘事件 1 浏览器操作 #属性: driver.c ...

  8. Python + Selenium WebDriver Api 知识回顾

    一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver  的属性 ['CONTEXT_CHROME', 'C ...

  9. Selenium使用总结(Java版本)

    硒在最近的发展中被广泛应用,因为它以前没有被使用过,并且已经走了太多的坑.这是一张唱片. 1.环境配置 配置要点: 1.Web驱动程序应该与浏览器版本相对应,chrome使用chrome驱动程序和ch ...

随机推荐

  1. xshell连接console口

  2. [Linux]线程分离状态的理解

    在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死:在被其他线程回收之前,它的存储器资源(如栈)是不释放的.相反, ...

  3. 201871010104-陈园园 《面向对象程序设计 (java)》第一周学习总结

    201871010104-陈园园   <面向对象程序设计  (java)>第一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-dai ...

  4. 设计模式-Adapter(结构型模式)针对第三方库 函数 接口不匹配的问题,分为类模式 与 对象模式 两种

    以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //****************************类模式的Adaptr*********************** ...

  5. <Array> 54 (高频+hard )45

    55. Jump Game 希望知道能否到达末尾,也就是说我们只对最远能到达的位置感兴趣,所以维护一个变量 reach,表示最远能到达的位置,初始化为0.遍历数组中每一个数字,如果当前坐标大于 rea ...

  6. Linux运维基础篇大全

    基础知识的文章都在这里https://www.jianshu.com/u/a3c215af055a ,想要了解,请访问这个地址!!!!

  7. word文档操作-doc转docx、合并多个docx

    前言: 临时来了一条新的需求:多个doc文档进行合并. 在网上苦苦搜罗了很久才找到可用的文件(原文出处到不到了 所以暂时不能加链接地址了),现在记录下留给有需要的人. 一:doc转docx 所需jar ...

  8. mysql--事务详解

    事务的四大特性: # 原子性(atomicity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作 ...

  9. Installation request for topthink/think-captcha ^3.0 -> satisfiable by topthink/think-captcha[v3.0.0].

    ThinkPHP5.1安装图形验证码的时候报错: Problem 1 - Installation request for topthink/think-captcha ^3.0 -> sati ...

  10. RaiseException函数逆向

    书中内容: 代码逆向: 存在一个疑问:为什么在ExceptionAddress本来是错误产生代码的地址,但这里给存入一个_RaiseException的偏移地址. 答案在下个函数中:rtlRaiseE ...