问题1:开始第一步,使用selenium+webdriver进行项目实战过程中,发现在填写密码的时候无法输入密码。
密码框的元素属性:
自身的代码:
pass_log = (By.XPATH, ".//*[@id='pass']")
def type_password(self, password):
self.find_element(*self.pass_log).click()
self.find_element(*self.pass_log).send_keys(password) 解决思路:
1、找到本身的问题所在
2、直接使用JS填写密码
解决办法:
1、已经找到本身的问题:原因是密码那里使用了type=”text”和type=“password”。所以点击密码框之前就是text属性,点击之后就是password属性,因此两个ID也不同,改成这样就可以了。
pass_log = (By.XPATH, ".//*[@id='pass']")
password_log = (By.ID, 'password')
def type_password(self, password):
self.find_element(*self.pass_log).click()
self.find_element(*self.password_log).send_keys(password) 2、使用JS的办法尚在学习中。。。
——-已解决,办法如下————-
driver.execute_script("document.getElementById(\"password\").value=\"321\"") 将函数中最后一行的代码改成执行JS的,效果也是一样的。但是问题的根源还是在于元素的定位上。因此办法2其实和办法1是一样的,只是方式不同。
问题二、使用IEDriverServer打不开ie浏览器
1、环境:python(3.5)+selenium(2.48.0)+IEDriverServer(64位+2.48)+ie9版本
ie里面的4大安全选项全部去除掉了勾,屏幕显示已经设置为100%,IEDriverServer是放在python的主目录下的,所以也不存在环境变量的问题。
这些配置全部配置了,但是执行以下代码的时候报了一个Keyerror的错误,说没有sessionId这个key。错误原文是:KeyError: ‘sessionId’
解决办法:查看浏览器是否配置了代理,如果有代理,必须去除掉代理。
版权声明:本文为kukukukuwo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。