[流程描述] 登录126邮箱,退出 [代码] #coding=utf-8 from selenium import webdriver driver = webdriver.Firefox() #driver = webdriver.Ie() driver.implicitly_wait(10) driver.get("https://mail.126.com/") #切换到frame driver.switch_to.frame("x-URS-iframe") #…
问题描述 在python执行过程中,提示selenium.common.exceptions.WebDriverException: Message: TypeError: can't access dead object 原因 原因是代码中用到了frame,获取元素前需要切换到frame才能定位到元素,否则无法定位到元素 解决方法 在查找元素前加一句driver.switch_to_default_content() 退出frame 示例代码 import time from selenium…
使用id定位Message: no such element: Unable to locate element: {"method":"id","selector":"auto-id-1537235284167"},找不到元素.原因是由于此id是动态id,每次刷新http://www.126.com页面该值都会变话.因此找不到对应元素. 使用类定位原因是:该class是含有空格的复合类.无法直接使用find_element_…
开始在没有进入iframe时,用任何方法定位163/126邮箱登录页面的元素都不可能定位到,eclipse工作台会显示Unable to locate element:…… 这种情况我遇到了两种原因: 解决方案一: 因为126/163邮箱是在iframe中又嵌套了一个页面,所以首先需要先进入到iframe,代码如下: //启动火狐浏览器 WebDriver driver = new FirefoxDriver(); driver.get("http://mail.163.com/");…
原代码如下: import smtplib from email.mime.text import MIMEText from email.header import Header #要发送的服务器 smtpserver = 'smtp.126.com' #要发送的邮箱用户名/密码 user = 'XXX@126.com' password = 'XXX' #发送的邮箱 sender = 'XXX@126.com' #接收的邮箱 receiver = 'XXX@qq.com' #发送邮箱主题 s…
可以直接添加用户关键字,也可以新建资源,将用户关键字添加入资源,然后导入整个资源文件 用户关键字内部实现如下: 打开126邮箱首页: Open Browser  Http://mail.126.com ie Reload Page #刷新浏览器    输入用户名:定义了变量${username} Wait Until Page Contains Element Xpath=html/body/header/a   Select Frame id=x-URS-iframe   Input Text…
代码:#encoding=utf-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_condition…
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前html页面中是唯一的) 页面源码如下: "<button name="btnK">Google Search</button>" 当我们要用name属性来定位这个按钮元素并点击它时,代码如下: driver.find_element_by_name…
126邮箱发送邮件python实现 from email.mime.text import MIMEText from email.utils import formataddr import smtplib def mail(): msg = MIMEText('这是一封测试邮件 by python3','plain','utf-8') msg['From'] = formataddr(["走心的狗",'XXX@126.com']) msg['To'] = formataddr([&…
页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 自动化测试步骤 定位元素>操作元素>验证操作结果>记录测试结果 在自动化测试过程中, 测试程序通常的操作页面元素步骤 1. 找到Web的页面元素,并赋予到一个存储对象中 (WebElement) 2. 对存储页面元素的对象进行操作, 例如:点击链接,在输入框中输入字符等 3. 验证页面上的元素是否符合预期 定位方法…
我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者工具(浏览器F12打开)来查看网页对应的html代码.然后进行定位.可以稍微学习HTML基础,更容易理解. 定位方式有八种,这八种各有两个方法,一个是find_element_by_方式,这是定位单个元素的.一个是find_elements_by_方式,这是用来定位多个元素的. 使用name属性定位…
html  代码: <html> <body> <div id="div1"> <input name="divl1input"></input> <a href="http://www.sogou.com/">搜狗搜索</a> <img alt="div1-img1 "src="http://www.sogou.com/ima…
selenium webdriver 表格的定位方法 html 数据准备 <html> <body> <div id="div1"> <input name="divl1input"></input> <a href="http://www.sogou.com/">搜狗搜索</a> <img alt="div1-img1 "src=&qu…
selenium对web各元素的操作首先就要先定位元素,定位元素的方法主要有以下几种:通过id定位元素:find_element_by_id("id_vaule")通过name定位元素:find_element_by_name("name_vaule")通过tag_name定位元素:find_element_by_tag_name("tag_name_vaule")通过class_name定位元素:find_element_by_class_na…
Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[text()='百度新闻']/..") print(type(self.new_ads_plan)) self.driver.find_element(self.new_ads_plan).click() 运行经常报错:selenium.common.exceptions.WebDriverExcepti…
Selenium自动化测试框架(二)之selenium使用和元素定位 (一)selenium的简单使用 1.导包 from selenium import webdriver 2.初始化浏览器 # 驱动在python环境中 browser = webdriver.Chrome() # 驱动不放在python环境中,添加executable_path关键字 browser = webdriver.Chrome(executable_path=r"D:\chromedriver.exe")…
Selenium WebDriver 8大定位方式: driver.find_element_by_id() driver.find_element_by_name() driver.find_element_by_xpath() driver.find_element_by_class_name() driver.find_element_by_tag_name() driver.find_element_by_css_selector() driver.find_element_by_lin…
1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. 2.什么是toast? Android中的Toast是一种简易的消息提示框.当视图显示给用户,在应用程序中显示为浮动.和Dialog不一样的是,它永远不会获得焦点,无法被点击.用户将可能是在中间键入别的东西.Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到.而且Toast…
1.简介 终于经过宏哥的不懈努力,偶然发现了一个toast的web页面,所以直接就用这个页面来夯实一下,上一篇学过的知识-处理toast元素. 2.安居客 事先声明啊,宏哥没有收他们的广告费啊,纯粹是为了学习和实战的. 2.1被测网址 1.被测网址的地址: https://login.anjuke.com/login/form?history=aHR0cHM6Ly9iZWlqaW5nLmFuanVrZS5jb20v 2.网页如下图: 2.2代码设计 2.3参考代码 package lessons…
需要root 增加快门声按钮: 在\system\csc\目录下,有个others.xml的手机功能定制文件,用root explorer之类可以修改系统文件权限的文本修改工具编辑它,在文件最末添加这样一行:<CscFeature_Camera_ShutterSoundMenu>TRUE</CscFeature_Camera_ShutterSoundMenu>重启手机,在相机设置里就会出现快门声开关选项. 浏览器增加退出按钮: 在\system\csc\目录下,有个others.x…
本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80956455 在进行Android程序的逆向分析的时候,经常需要通过Android应用程序的界面UI来定位代码的位置,比较常见的例子就是分析Android应用的网络协议时,用户点击登录按钮,实现客户端程序的登录,将用户的账号信息发送给服务器端进行验证,那么我们分析这个网络数据传输的流程中,首先要定位用户点击登录按钮的事件响应代码在哪里,当然了基于特征字符串的搜索和smali字节…
转自:https://www.cnblogs.com/wuhl-89/p/7778463.html 查看元素发现id为动态,所以不选择以id定位. 使用xpath路径定位,每次获取元素都失败,最后网上查了下发现其嵌套在表单frame/iframe中,所以我们先要进入frame/iframe中,然后再定位 frame/iframe的定位方式有3种,一是通过id:二是通过name:三是xpath 例:switch_to_frame(id)  : 或是  switch_to_frame(name):若…
今天发现之前的登录163邮箱脚本定位不到iframe了,原因是iframe拼接了动态ID,修改后的脚本如下: from selenium import webdriver driver = webdriver.Firefox()driver.maximize_window() driver.get('http://mail.163.com') driver.find_element_by_id('switchAccountLogin').click()iframe = driver.find_e…
这是一个很多基础演示的书上的例子,但是一般按照这些书上的代码可能都不能成功登录.也许是网易修改了126的页面导致的吧,下面给出最新的能够work的版本 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdrive…
自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"…
#coding=utf-8from selenium import webdriverimport time mydriver=webdriver.Firefox()mydriver.get("http://mail.126.com/")print mydriver.titleprint mydriver.current_urltime.sleep(1) mydriver.switch_to.frame(mydriver.find_element_by_id('x-URS-iframe…
脚本内容:#encoding=utf-8#author-夏晓旭from selenium import webdriverimport timefrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.common.exceptions import TimeoutException, NoSuchElementExceptioni…
一. Selenium2 WebDriver 当Selenium2.x提出了WebDriver的概念后,它提供了完全另外的一种方式与浏览器交互 那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏.窗口大小.启动.关闭.安装插件.配置证书之类的) 由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学 然而带来的一些副作用就是,不同的浏览器厂商,对web…
思路:使用python自带的unittest单元测试框架测试163邮箱登录成功的case import unittestfrom selenium import webdriverimport time#定义登录类,登录相关的case都可以在这里 class LoginCase(unittest.TestCase): #每个用例开始前的准备 def setUp(self): print("开始测试") self.dr=webdriver.Chrome() self.dr.get(&qu…
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学习元素定位之前,我们最好能懂一点html的知识. 一.查看页面元素 用谷歌浏览器打开百度首页,点击右上角>更多工具>开发者工具,就可以看到整个页面的html代码了 点击框中左上角的箭头图标,移动鼠标到百度搜索框,就可以自动定位到百度搜索框的HTML代码了,查看到搜索框的属性,我们可以看到搜索框有i…