一、手工标准化操作流程:

1、登录系统

2、登录后的页面点击:账户设置

3、点击“重新评测”,进入到风险评测页面

4、答完8道题

5、勾选条件checkbox

6、点击“提交”

提交后的页面

二、自动化实现

1、登录系统:略

2、登录后的页面点击:账户设置

driver.find_element_by_partial_link_text('账户设置').click()

3、点击“重新评测”,进入到风险评测页面

这一步的处理纠结时间比较长,试了很多中方法都没有定位出来。。。。。。

#以下定位是查找span标签有个文本(text)包含(contains)'开始评测' 的元素,该定位方法重要
driver.find_element_by_xpath("//span[contains(text(),'开始评测')]").click()
time.sleep(3)

4、答完8道题

# 第1题:
driver.find_element_by_xpath('//*[@id="RISK0"]/div/ul/li[1]/label').click() #选择第1个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[2]/label').click() #选择第2个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[3]/label').click() #选择第3个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[4]/label').click() #选择第24个选项

5、勾选条件checkbox

#复选框
driver.find_element_by_xpath('/html/body/div[2]/div[3]/div/div[1]/label[1]').click()
#提交
driver.find_element_by_id('submit').click()

三、完整的界面自动化实现

import time
from selenium import webdriver
# import os #B
username = "" # 请替换成你的用户名 password = "123456Aa" # 请替换成你的密码 code = 121
#driver = webdriver.Chrome() # 选择Chrome浏览器或者用下面的浏览器,看心情
driver = webdriver.Firefox()
#B
driver.get('http://118.178.---.--:8081/systLogonUser/login.do') # 打首金网登录页面
#C
#driver.get('http://10.253.125.38:8081/systLogonUser/login.do') # 打首金网登录页面
# time.sleep(1) #找到用户名输入框点击获取焦点并输入信息
driver.find_element_by_id('userName').click()
driver.find_element_by_id('userName').send_keys(username) #找到密码输入框点击获取焦点并输入信息
driver.find_element_by_id('pwd').click()
driver.find_element_by_id('pwd').send_keys(password) # 找到图形验证码输入框点击获取焦点输入信息
driver.find_element_by_id('verifyCode').click()
driver.find_element_by_id('verifyCode').send_keys(code) # 找到登录按钮点击
driver.find_element_by_id('login').click()
time.sleep(1) # 找到签到点击完成签到
# driver.find_element_by_class_name('signIn').click() # driver.close() # 这些是网站中定位到的元素
# userName
# pwd
# verifyCode
# login
#定位“我的账户”左侧列表
'''
“我的账户”页面左侧导航列表页面
'''
driver.find_element_by_partial_link_text('账户设置').click()
time.sleep(1) '''
以下定位是查找span标签有个文本(text)包含(contains)'开始评测' 的元素,该定位方法重要
'''
driver.find_element_by_xpath("//span[contains(text(),'重新评测')]").click()
time.sleep(1) # 第1题:
driver.find_element_by_xpath('//*[@id="RISK0"]/div/ul/li[1]/label').click() #选择第1个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[2]/label').click() #选择第2个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[3]/label').click() #选择第3个选项
# driver.find_elements_by_xpath('//*[@id="RISK0"]/div/ul/li[4]/label').click() #选择第24个选项
# 第2题:
driver.find_element_by_xpath('//*[@id="RISK1"]/div/ul/li[1]/label').click()
# 第3题:
driver.find_element_by_xpath('//*[@id="RISK2"]/div/ul/li[1]/label').click()
# 第4题:
driver.find_element_by_xpath('//*[@id="RISK3"]/div/ul/li[1]/label').click()
# 第5题:
driver.find_element_by_xpath('//*[@id="RISK4"]/div/ul/li[1]/label').click()
# 第6题:
driver.find_element_by_xpath('//*[@id="RISK5"]/div/ul/li[1]/label').click()
# 第7题:
driver.find_element_by_xpath('//*[@id="RISK6"]/div/ul/li[1]/label').click()
# 第8题:
driver.find_element_by_xpath('//*[@id="RISK7"]/div/ul/li[1]/label').click() # time.sleep(3)
#复选框
driver.find_element_by_xpath('/html/body/div[2]/div[3]/div/div[1]/label[1]').click()
#提交
driver.find_element_by_id('submit').click()
time.sleep(3)
driver.close()

四、mac下运行出现的问题

提示信息的大概意思是什么东西被遮挡了,观察后估计是浏览器显示的问题,添加如下一句代码后解决

driver.maximize_window()   #将浏览器最大化显示
driver = webdriver.Firefox()

driver.maximize_window()   #将浏览器最大化显示

time.sleep(3)

五、优化及修改

1、selenium “could not be scrolled into view” 解决方法:让脚本sleep一下,等页面加载完就可以了
2、页面是否最大化的设置

3、“重新评测”定位的两种方式,win上#1不行,#2可行;mac上#1是可以的

'''
以下定位是查找span标签有个文本(text)包含(contains)'开始评测' 的元素,该定位方法重要
'''
# driver.find_element_by_xpath("//span[contains(text(),'重新评测')]").click()#1
driver.find_element_by_id('reEvaluation').click()#2
time.sleep(3)

sjw-风评评测-定位页面元素的更多相关文章

  1. selenium定位页面元素的一件趣事

    PS:本博客selenium分类不会记载selenium打开浏览器,定位元素,操作页面元素,切换到iframe,处理alter.confirm和prompt对话框这些在网上随处可见的信息:本博客此分类 ...

  2. 定位页面元素之xpath详解以及定位不到测试元素的常见问题

    一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...

  3. 使用CSS选择器定位页面元素

    摘录:http://blog.csdn.net/defectfinder/article/details/51734690 CSS选择器也是一个非常好用的定位元素的方法,甚至比Xpath强大.在自动化 ...

  4. Selenium 定位页面元素 以及总结页面常见的元素 以及总结用户常见的操作

    1. Selenium常见的定位页面元素 2.页面常见的元素 3. 用户常见的操作 1. Selenium常见的定位页面元素 driver.findElement(By.id());driver.fi ...

  5. webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载

    webdriver定位页面元素时使用set_page_load_time()和JavaScript停止页面加载 原文:https://my.oschina.net/u/2344787/blog/400 ...

  6. selenium第三课(selenium八种定位页面元素方法)

    selenium webdriver进行元素定位时,通过seleniumAPI官方介绍,获取页面元素的方式一共有以下八种方式,现按照常用→不常用的顺序分别介绍一下. 官方api地址:https://s ...

  7. 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法

    appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...

  8. selenium webdriver学习(四)------------定位页面元素(转)

    selenium webdriver学习(四)------------定位页面元素 博客分类: Selenium-webdriver seleniumwebdriver定位页面元素findElemen ...

  9. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

随机推荐

  1. 7.17python

    1.事件: # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/17 10:38 # !@Author TrueNew ...

  2. SSH框架下的表单重复提交

    前几天做了一个功能,是在某个操作后,刷新父页面的,刷新时弹出了下面图的框: 网上查了之后发现这个框是表单重复提交时出现的.分析后发现,这个页面的上一个动作是form submit(在ssh框架下),这 ...

  3. 架构师如何借鉴他人经验快速成长? | 2018GIAC上海站日程上线!

    随着网络技术的迅猛发展,越来越多的企业需要紧跟技术发展潮流以应对层出不穷的业务场景变化.如今多“语言”开发百花齐放,选择何种语言才能在合适的场景中发挥最大价值?互联网业务架构经过了长年的发展,已然朝着 ...

  4. vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑

    导出弹窗的html <template> <Modal v-model="exportModal" width=400 :closable="false ...

  5. InputStream只能读取一次的解决办法 C# byte[] 和Stream转换

    x 情景--->>> 导入文件的时候,前台传过来一个文件, 后台接到: HttpPostedFileBase file = Request.Files[];由于对这个文件后台处理比较 ...

  6. 关于tomcat服务器

    如果遇到jsp代码反复运行不成功,并且不报错 而且代码也重复检查过,正确无误了 那么 就不要把精力放在代码上了 有可能是服务器的问题 重启下服务器试试 ……不要问我尽经历过什么

  7. 【单调栈】hdu 6319 杭电多校Problem A. Ascending Rating

    http://acm.hdu.edu.cn/showproblem.php?pid=6319 从后往前更新,维护一个递减单调栈(队列) 最近很多题都是单调栈... #define _CRT_SECUR ...

  8. KONE-FLOW Vistor Key

    WELCOME TO KONE

  9. [daily][archlinux] 本地字符乱码, 无法显示中文

    一: 突然有一天,Konsole里边看见的中文文件名的文件,就变成了乱码.thunderbird存到本地的附件,文件名也变成了乱码. 在X下查看locale,内容如下: 手动设置了之后也不对. 但是在 ...

  10. zookeeper 杂记

    Zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper不能用于存放大量的数据,每个节点的存放数据上限为1M.