selenium python 遇到的问题

在使用Python的Selenium库操作Chrome浏览器时遇到了一些问题。首先,由于配置文件value的单引号导致chromedriver无法正常启动,get请求始终停留在data页面。修正配置文件格式后,问题得以解决。其次,在尝试获取页面文字并进行断言时,发现XPath定位到的文本为Unicode编码,需要转为字符串才能正确比较。最后,为了应对页面加载时间长的情况,建议设定最长超时时间和元素的隐式等待时间。

1. chromedriver启动,get不到url,直接停留在data页

chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)

2. 抽离页面元素,读取配置文件

读取配置文件的方法:

import ConfigParser

element = ConfigParser.ConfigParser()
element.read('element.conf')
l_url = element.get('login_page', 'email_input')

开始配置文件格式为:

login_page:
login_button: '#loginform input[name=submit]'
email_input: '#loginform input[name=input]'
password_input: '#loginform input[name=password]'

但是一直读取不到,还报错,郁闷了良久,无意中发现,配置文件格式不对,把value的单引号去掉就可以了

login_page:
login_button: #loginform input[name=submit]
email_input: #loginform input[name=input]
password_input: #loginform input[name=password]

3. 获取页面文字  

通过xpath定位到的文字直接进行assert比较是失败的,因为定位到的编码格式是Unicode,需要进行转换成string后进行比较

assert find_element_by(element.get('personal_page', '个人信息')).text.encode("utf-8") == element.get('personal_page','pm')

4. 设置最长超时时间  

driver.set_page_load_timeout(10)
其他几种等待(强制等待(sleep),显式等待,隐式等待)详细介绍:http://blog.youkuaiyun.com/ping523/article/details/53419622

经验:最好设置一个最长等待时间,然后在经常出问题的元素上面设置一个隐式等待,页面元素较多,加载时间长的页面可以显式等待


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值