Login 网易music

来源:互联网 发布:软件过程域哪些 编辑:程序博客网 时间:2024/06/05 15:12


在用Ph an tom JS 和 se le . ni um进行模拟登陆的时候,使用了一些解决方法。


3种情况:

一:最简单的就是JS类型的弹出框,包括  警告消息框alert、确认消息框confirm、 提示消息对话框prompt

这没有什么好说的,看下面的链接就可以了。但是这解决不了我的问题

http://www.cnblogs.com/mengyu/p/6952774.html


二:第二种情况就是把  登陆窗口隐藏起来的,虽然隐藏起来了,但是还是能够通过sele定位到的,这很好解决,但是还是解决不了我的问题


三:第三种情况就是  动态生成的登录框,我遇到的就是这种情况。解决办法就是:

driver.implicitly_wait(10)driver.switch_to.window(driver.current_window_handle)
switch_to.window方法本来是进行窗口之间的跳转,我让它自己再次跳转向自己,这样动态的窗口就会出现在html代码中了,牛不牛比。对了,记住要延时。


在最后的登陆中,我用了

driver.switch_to.window(driver.window_handles[-1])time.sleep(7)
第一行的代码是一个意思,因为就只有1个窗口嘛,所以一样。不同的是time.sleep(7)这个,没有这个死等7秒的函数,我还不能登陆呢。



PS:这里还要说到3种等时间延迟的方法。1、强制等待 2、显性等待 3、隐形等待

网址:http://www.jb51.net/article/92672.htm




网易music使用了框架iframe,那么请看网址:http://blog.csdn.net/huilan_same/article/details/52200586

在登陆的时候,第一个按钮在iframe中,使用

driver.switch_to.frame('g_iframe')


之后生成的动态登陆页面,如果你足够细心,会发现是在iframe之外的,所以我用了

driver.switch_to.default_content()


反正只要sele能够定位到你想要的元素就是正确的。