wish3

上一篇 / 下一篇  2017-12-12 10:42:57 / 个人分类:学习疑问

   前几天学到了selenium的自动登陆,于是我迫不及待想要自己进行验证一下。所以我选择了登陆我们公司的OA系统。账号登陆什么的我就不讲了,最基本的。我出现的问题是登陆进去之后进行选择的时候如图,我想要通过元素定位到这里的时候

我想了很多种方法都报了,比如,driver.find_element_by_link_text('人力资源'),报了Unable to locate element: 人力资源,这样的错误。 比如通过driver.find_element_by_class_name('menuA'),报的也是Unable to locate element: .menuA。后面我想是不是登陆进入系统的时候有页面跳转需要先切换,于是我加了一句driver.switch_to_default_content()。(登陆进去的时候是在浏览器上增加了一个页面,我不知道这样页面跳转之后是要怎样处理的)  结果还是一样的,没办法找到元素。
    好吧,先把自己遇到的问题记录下来,目前我也没有其他的人可以请教,自己也没有什么好的方法去解决,只有是继续往后面学习再说,学到后面随着自己对于这方面的了解加深,我相信这些问题会不攻自破的。最后把我的代码贴上
from selenium  import webdriver
import time
url='http://sso.szclou.com/login'
username = '****'
password = '****'

time.sleep(3)
driver = webdriver.Firefox()
driver.get(url)
#输入账号
driver.find_element_by_id('username').send_keys(username)
time.sleep(5)
#输入密码
driver.find_element_by_id('pw').send_keys(password)
time.sleep(5)
#点击登陆
driver.find_element_by_id('subBtn').click()
print('登陆成功')

#点击OA进入系统
time.sleep(3)
driver.find_element_by_id('oa').click()
#页面切换
driver.switch_to_default_content()
#将鼠标放在“人力资源”上面
from selenium.webdriver.common.action_chains import ActionChains
ele = driver.find_element_by_xpath('menuA')
ActionChains(driver).move_to_element(ele).perform()
#将鼠标放在“时间管理”上面
ele1 = driver.find_element_by_link_text('时间管理')
ActionChains(driver).move_to_element(ele1).perform()
#点击请假申请
sub_ele = driver.find_element_by_link_text('请假申请').click()
print('开始请假事项')

TAG:

youreyebows的个人空间 引用 删除 youreyebows   /   2017-12-14 09:30:24
如果点击登录按钮,浏览器上新建了一个标签页,那可以打印看看current_window_handle,如果和跳转之前不一样,那就用switch_to.window(xxx)
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 1073
  • 日志数: 1
  • 建立时间: 2017-12-12
  • 更新时间: 2017-12-12

RSS订阅

Open Toolbar