#!/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. numpy和matplotlib的pyplot函数的简单应用实现

  2. C语言中,关于排序的问题(输入n个数,输出最大的那个)

    int n,max=0,t; scanf("%d",&n); int a[n],i,k;  //这个a[n]必须要在输入n的值之后才能定义,不然定义不成. for(i=1; ...

  3. expect实现非交互下的ssh连接, expect简单使用整理

    1. shell中使用ssh远程连接服务器做一些事情通常需要交互输入些信息, 可使用expect语句解决: 2. expect中设置变量语法: set name xxx set age    xxx  ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest dp

    E. The Contest A team of three programmers is going to play a contest. The contest consists of

  5. Luogu P5408 【模板】第一类斯特林数·行

    为什么要做这题呢,当然是有用啊qwq 首先我们考虑非常经典的式子: \[x^{\overline{n}}=\sum_i \left[^n_i\right] x^i\] 然后上倍增: \[x^{\ove ...

  6. React: React组件创建的三种方式

    一.简介 在前面介绍的React组件知识中,对于组件的创建我只是用了其中某一种方式.其实,在2013年React诞生之初,对于React组件的创建,仅仅只有一种方式,也即createClass函数,在 ...

  7. C#中char[]与string之间的转换;byte[]与string之间的转化

    目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...

  8. IT兄弟连 Java语法教程 数组 数组的使用

    数组最常用的用法就是访问数组元素,包括对数组元素进行赋值和取出数组元素的值.访问数组元素都是通过在数组引用变量后紧跟一个方括号([]),方括号里是数组元素的索引值,这样就可以访问数组元素了.访问到数组 ...

  9. 利用Python进行数据分析-Pandas(第一部分)

    利用Python进行数据分析-Pandas: 在Pandas库中最重要的两个数据类型,分别是Series和DataFrame.如下的内容主要围绕这两个方面展开叙述! 在进行数据分析时,我们知道有两个基 ...

  10. SpringBoot(15)—@Conditional注解

    SpringBoot(15)-@Conditional注解 作用 @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean. 一.概述 1 ...