Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)
#!/usr/bin/env python
# -*- coding:utf-8 -*- from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select import time,os
import random # about:addons 火狐浏览器安装组件,访问的地址 # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
#id
keys="测试部落"
delay=3
url="https://www.baidu.com/"
# url="https://mail.163.com/"
driver=webdriver.Firefox() driver.get(url)
#按关键字搜索后,发现结果页面有共同元素<div class="result c-container "
# <div class="result c-container " id="5" srcid="1599" tpl="se_com_default"
# data-click="{"rsv_bdr":"0","p5":5}">
# <h3 class="t">
# <a data-click="{
# 'F':'778317EA',
# 'F1':'9D73F1E4',
# 'F2':'4CA6DE6B',
# 'F3':'54E5343F',
# 'T':'1543897223',
# 'y':'777DD28E'
#
# }"href="http://www.baidu.com/link?url=...." target="_blank"><em>selenium自动化</em>测试实战 - Trinity - CSDN博客</a>
# </h3> driver.find_element_by_id("kw").send_keys(keys) #点击搜索按钮提交
driver.find_element_by_id("su").click() #获取符合条件的结果的超链接
# href_list=driver.find_elements_by_css_selector("div[tpl='se_com_default']>h3>a")
href_list=driver.find_elements_by_css_selector("div[srcid='1599']>h3>a") #获取元素属性信息 网页标题 标签名 ID 网页尺寸 位置和尺寸 位置
print(href_list[1].text)
print(href_list[1].tag_name)
print(href_list[1].id)
print(href_list[1].size)
print(href_list[1].rect)
print(href_list[1].location) #结果连接个数
urllen=len(href_list)
print(urllen) #随机值
rand=random.randint(0,urllen) url=href_list[1].get_attribute('href')
print(url)
driver.get(url) #随机点击查询出的超连接页面
href_list[rand].click() #iframe切换
# <iframe name="" id="x-URS-iframe1543906125221.7507" scrolling="no"
# style="width: 100%; height: 100%; border: medium none; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%;"
# src="https://dl.reg.163.com/webzj/v1.0.1/pub/index_dl2_new.html?cd=https%3A%2F%2Fmimg.127.net%2Findex%2F163%2Fscripts%2F2017%2Fpc%2Fcss%2F&" \
# "cf=urs.7ac8b88e.css&MGID=1543906125221.7507&wdaId=&pkid=CvViHzl&product=mail163" frameborder="0"></iframe> #最长30秒
driver.implicitly_wait(2) #默认可通过iframe的ID name定位 由于iframe的id后面有附加随机数,所以不成功,但大致处理方式就是这样
driver.switch_to.frame("x-URS-iframe")
driver.find_element_by_name("name").send_keys("test")
driver.find_element_by_name("password").send_keys("123456") #回到主页面上
driver.switch_to.default_content() #百度-设置-搜索页面-全部语言-每页多少条
# <select name="NR" id="nr">
# <option value="10" selected="">每页显示10条</option>
# <option value="20">每页显示20条</option>
# <option value="50">每页显示50条</option>
# </select> #下拉框操作
mouse=driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索设置").click() #分步骤定位
select=driver.find_element_by_id("nr")
select.find_element_by_xpath("//option[@value='20']").click() #直接定位
driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click() #通过索引定位 从0开始
Select(select).select_by_index(1) #通过value定位
Select(select).select_by_value('20') #通过选项的内容定位
Select(select).select_by_visible_text('每页显示20条') #第一个选项
Select(select).first_selected_option #所有选项
Select(select).all_selected_options #取消所有选项的选择
Select(select).deselect_all() time.sleep(delay)
driver.quit()
Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)的更多相关文章
- Python3+Selenium3+webdriver学习笔记9(发送富文本信息及上传文件处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记9(发送富文本信息及上传文件处理)'''from seleni ...
- Python3+Selenium3+webdriver学习笔记8(单选、复选框、弹窗处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记8(单选.复选框.弹窗处理)''' from selenium ...
- Python3+Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )
!/usr/bin/env python -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )'''from selenium im ...
- Python3+Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记13(js操作应用:弹出框无效如何处理)'''from sel ...
- Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...
- Python3+Selenium3+webdriver学习笔记11(cookie处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记11(cookie处理)'''from selenium im ...
- Python3+Selenium3+webdriver学习笔记10(元素属性、页面源码)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记10(元素属性.页面源码)'''from selenium i ...
- Python3+Selenium3+webdriver学习笔记6(多窗口切换处理)
#!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverfrom selenium.webdriver.co ...
- Python3+Selenium3+webdriver学习笔记5(模拟常用键盘和鼠标事件)
#!/usr/bin/env python# -*- coding:utf-8 -*- from selenium import webdriverfrom selenium.webdriver.co ...
随机推荐
- sublime Text3支持vue高亮,sublime Text3格式化Vue
第一:让sublime Text3支持Vue高亮 PS:我的sublime版本是3126,我不清楚其它版本的是不是这样设置,不过可以看看思路自己摸索下 1.下载可以让vue格式高亮的插件vue-syn ...
- Oracle 11gr2的完全卸载
Oracle 11gr2的完全卸载方式与前些版本有了改变,运行D:\app\Administrator\product\11.2.0\dbhome_1\deinstall的deinstall.bat批 ...
- GTK学习笔记之Linux下Gtk环境搭建
下面介绍下Ubuntu 环境下具体的安装过程: 1.配置安装gcc/g++/gdb/make 等基本编程工具(必须装好) 刚装好的Ubuntu系统中已经有GCC了,但是这个GCC几乎什么文件都不能编译 ...
- ApplicationContext的三个常用实现类:
ClassPathXmlApplicationContext 它可以加载类路径下的配置文件,要求配置文件必须在类路径下,不在的话加载不了 (java中获取类路径下资源的方式) FileSystemXm ...
- [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件
目录:[Swift]Xcode实际操作 本文将演示如何创建各种类型的文件. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class V ...
- 消息中间件之ActiveMQ(非原创)
文章大纲 一.消息中间件基础知识二.ActiveMQ介绍三.ActiveMQ下载安装(Windows版本)四.Java操作ActiveMQ代码实战五.Spring整合ActiveMQ代码实战六.项目源 ...
- PKUSC 2018 题解
PKUSC 2018 题解 Day 1 T1 真实排名 Link Solution 考虑对于每一个人单独算 每一个人有两种情况,翻倍和不翻倍,他的名次不变等价于大于等于他的人数不变 设当前考虑的人的成 ...
- java中 json和bean list map之间的互相转换总结
JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...
- Linux unzip用法
1.把文件解压到当前目录下 unzip test.zip 2.如果要把文件解压到指定的目录下,需要用到-d参数. unzip -d /temp test.zip 3.解压的时候,有时候不想覆盖已经存在 ...
- 047 Permutations II 有重复数字的全排列
给定一个可能包含重复数字的集合,返回所有可能的不同全排列.例如,[1,1,2] 有以下不同全排列:[ [1,1,2], [1,2,1], [2,1,1]] 详见:https://leetcode ...