Mayi_Selenium登录126邮箱,定位不到账号输入框解决办法

转自: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);若frame没有id和name,只能是通过xpath方式定位到frame,switch_to_frame(xpath)

代码如下:

 1 from selenium import webdriver
 2 import time
 3
 4 url = ‘http://www.126.com‘
 5 driver = webdriver.Firefox()
 6 driver.get(url)
 7 driver.switch_to.frame("x-URS-iframe")  #进入到表单中
 8 time.sleep(5)
 9 #使用Xpath定位
10 driver.find_element_by_xpath(‘/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input‘).send_keys(‘11111‘)

以上可以解决Firefox的问题,但是在Chrome上却找不到frame

Chrome解决办法:

driver.switch_to.frame("x-URS-iframe")这个括号内可以写入frame的序号,如有多个frame,最外层的为0,里面为1,以此类推。所以  driver.switch_to.frame(0),这样就可以了。

原文地址:https://www.cnblogs.com/xinxin1994/p/8999424.html

时间: 2024-08-27 08:19:32

Mayi_Selenium登录126邮箱,定位不到账号输入框解决办法的相关文章

Selenium登录126邮箱,定位不到账号输入框解决办法

用firebug去定位126邮箱登录页面的账号密码输入框,查看元素时发现ID每次都是变动的,不能用ID定位 使用xpath定位,发现每次定位都会失败,后来发现这个登录的账号密码输入框,是嵌套在表单iframe中,所以定位时,要先进入iframe里面才能正确定位 iframe/frame的定位方式有3种,一是通过ID,而是通过name,三是xpath 例如: switch_to_frame(id): switch_to_frame(name): 若是没有ID和name,那么只能通过xpath方式定

python2+selenium+mail,自动登录126邮箱

在进行登录126邮箱时有几个坑,要完美避过可以看一下下文,直接上代码: #encoding = utf-8 from selenium import webdriverimport unittestimport timeclass login126(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome(executable_path = "chromedriver") def test_login(sel

通达OA 避免子公司管理员直接删除账号的解决办法

作为集团化管理的企业,我们把用户管理的一部分权限下放到子公司来管理,子公司管理员可以管理自己子公司内部人员信息.但是这样管理给我们带来方便的同时,也带来了一些麻烦,就是当有员工离职或调转到其他子公司时,子公司的管理员往往是直接把这个用户的信息给删掉了,而集团内部要求是将用户信息保留转到人才库管理,子公司管理员由于没有在分子公司之间调转用户的权限往往就这样处理了. 为了解决这个问题,我们另外建了一个用户管理模块,功能与原用户模块一样而把原模块权限进行替换,只是屏蔽了"删除"用户这个按钮,

python webdriver firefox 登录126邮箱,先添加联系人,然后进入首页发送邮件,带附件。

代码:#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

远程登录oracle 12.2数据库报错ORA-28040解决办法

今天新安装的oracle 12.2.0.1数据库,通过本地sqlplus远程登录12c数据库报错ora-28040,如下: ORA-28040: No matching authentication protocol 解决办法(亲测可行): 进入到$ORACLE_HOME/network/admin下,编辑sqlnet.ora文件(如果不存在,则创建一个,或者去samples目录下复制一份),在末尾添加下面一行,不需要重新启动数据库及监听,再次通过本地sqlplus访问远程12c数据库,登录成功

python webdriver 显示等待-自动登录126邮箱,添加联系人

脚本内容:#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

运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法

管理员身份运行CMD,然后依次输入以下三行内容: setx GOOGLE_API_KEY "AIzaSyAUoSnO_8k-3D4-fOp-CFopA_NQAkoVCLw"setx GOOGLE_DEFAULT_CLIENT_ID "6307505647-6knmr84r2pj2leudg3pp1j0h1licd6b9.apps.googleusercontent.com"setx GOOGLE_DEFAULT_CLIENT_SECRET "rbeWhXT

【转】ssh登录慢,等待输入密码时间长的解决办法

http://youhuiba.net/2013/06/09/520.html 有时候在ssh远程登录到其他主机上时发现登录时间太长,要等待很久才会出现输入密码的提示,google了一下,发现主要有两个问题会导致ssh登录慢: 1.使用了dns反查,这样的话当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间.修改方式: vim /etc/ssh/sshd_config 增加一行记录:UseDNS no

网站后台登录页面始终始终为父窗体的解决办法

有时,因为登陆超时,所以要将地址跳转到登录页,但是传统的IFrame布局导致只有一块页面变成了首页,解决此问题的解决方案如下: <script type="text/javascript"> document.ready = function () { if (window.parent.window != window) { window.top.location = "/Admin/login.aspx"; } } </script> 版