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 ...
随机推荐
- 小程序[邮箱提取器-EmailSplider]总结
1.背景情况 学东西做快的是付诸实践,写这个小程序的目的就是为了综合运用各个知识点,从而提升学习的效果. 2.涉及知识 A.Swing 的布局 B.Swing中,线程访问U ...
- 卡内操作系统COS
https://wenku.baidu.com/view/dbaa94916bec0975f465e2e8.html 智能卡与cos技术简析: http://www.360doc.com/conten ...
- POJ - 2411 Mondriaan's Dream(轮廓线dp)
Mondriaan's Dream Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One nig ...
- 程序员必备,C#各类项目、开源项目插件资料收藏
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面 ...
- RobotFramework+selenium环境安装
1.安装python 2.7.12 https://www.python.org/downloads/release/python-2712/ 安装完成之后配置好path,将下面的类似安装路径加入pa ...
- Vee-validate 父组件获取子组件表单校验结果
vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息.它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开 ...
- 【Unity】物理碰撞实验
http://www.cnblogs.com/javawebsoa/archive/2013/05/18/3085818.html 这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就 ...
- 渲染路径-surface shader 光照函数与渲染路径
https://docs.unity3d.com/Manual/SL-SurfaceShaderLighting.html Lighting Model declaration Lighting mo ...
- 重启centOS丢失nginx.pid导致无法启动nginx的解决方法
目录 找到nginx 找到nginx的配置文件 拼接命令,启动nginx Nginx指令拓展知识(中英对照): tags: centOS linux nginx categories: 服务器 找到n ...
- 洛谷 P1070 道路游戏(noip 2009 普及组 第四题)
题目描述 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 nn个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 nn个机器人工厂编 ...