一. Selenium自动登录 代码如下所示: [python] view plaincopy
代码非常简单,其中的原理也很简单:通过driver访问Firefox浏览器及URL,同时find_element_by_name找到网页HTML源代码中对应的值并填充,最后调用Keys实现模拟操作键盘Keys.RETURN实现。该断言结果是不存在的,主要是用于防止关闭浏览器。
同时输入用户名或密码错误会提示,其实就是浏览器。 原理解释 两年前在学习C#网络编程时,我成写过Winform自动访问163邮箱的文章: C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录 通过对比,Python简短高效的优势就显示出来的,其中163邮箱登录界面HTML源码也没有修改和修复过,这是我意料之外的。 其中通过查找该登录页面发现用户名Id为“idInput”,密码Id为“pwdInput”,登录按钮ID为“loginBtn”。如图id和name: <input class="" tabindex="1" title="请输入账号" id="idInput" name="username" type="text" value="".. <input class="" tabindex="2" title="请输入密码" id="pwdInput" name="password" type="password" /> <button id="loginBtn" class="" type="submit">登 录</button> 如下图所示一目了然: 这部分文章虽然简单,但是作为基础文章在合适不过了,同时通过webdriver的driver.find_element_by_name引出下面的基础知识介绍,毕竟实践例子才是学习Selenium的动力源泉。
同样下面这段代码可实现自动登录CSDN,是不是可以通过它实现暴力破解密码呢? [python] view plaincopy
二. Locating Elements介绍PS:第一次上传翻译博文,如果有错误还请见谅! 官网地址:http://selenium-python./locating-elements.html 这里有各种策略用于定位网页中的元素(locate elements),你可以选择最适合的方案,Selenium提供了一下方法来定义一个页面中的元素:
[python] view plaincopy
[python] view plaincopy
1 Locating By Id 当你知道一个元素的id属性时使用该功能。有了这个方法,用id属性值匹配时第一个被定位的元素将被返回。如果没有元素匹配id值,一个NoSuchElementException异常将会抛出。例如,参考这个页面源码: [html] view plaincopy
[python] view plaincopy
2 Locating By Name 当你知道一个元素的name属性时使用该方法。通过该方法,第一个满足name属性值的元素将被匹配返回,如果没有元素匹配,将抛出一个NoSuchElementException异常。例如,参考下面源码: [html] view plaincopy
[python] view plaincopy
[python] view plaincopy
3 Locating By XPath
|
|