1、如果程序中有中文,运行时出现:SyntaxError:Non-ASCII character\'xe5'
解决方案:在源程序第一行处增加 #coding:utf-8即可
2、如何调用其他的python类
eg:Helloword.py中有类Helloword且有方法login()那么在stat.py中如何调用
可在stat.py中通过from Helloword import Helloword引入该类 然后实例化该类 aa = Helloword() aa.login()
3、ifram内部嵌套,如何定位iframe嵌套内部的元素
eg:<body>
<iframe id="a">
<table><iframe id="b">
<tr><td id="name"></td></tr>
</iframe></table>
</iframe>
</body>
此时需要使用:
driver.switch_to_frame("a")
driver.switch_to_frame("b")
先一层层的定位iframe然后再定位元素
4、操作下拉框,并选择数据selenium如何操作,操作下拉框的例子:先点击下拉框,从下拉框展开的数据中点击数值(故这里有两次点击事件)
5、selenium+python输入中文时会报错,
解决方案:可在中文前添加u进行转移
driver.find_element_by_xpath("XXX").send_keys(u"我们")
6、多iframe嵌套,iframe1中存在iframe2 iframe2当前元素定位到了iframe2里面同时需要定位iframe3 那么如何操作
解决方案:
a、使用driver.quit()退出 销毁当前driver然后再一层层的去通过driver.switch_to_frame("XX")去定位到iframe3[可是理想很丰满现实很骨感,这么操作果真不行]
b、既然第一种方案行不通那么可以试试第二种方案,使用当前默认的iframe: XX.switch_to_default_content()[先定位到默认的底层iframe后,再使用XX.switch_to_frame("XX")来一层层定位,发觉该方案可行]
7、selenium开启IE浏览器需要将IE——工具——Internet选项——安全——各图标的复选框均去掉(不勾选)
注:设置如上操作后会出现用户名、密码多次输入最后无法登陆此时可能是当前的用户名,密码文本框中本来就存在值此时可以使用driver.clear()清空当前文本框
8、项目环境监管中已经做好的脚本下次使用时会报部分元素找不到对象,经分析过后其实是有些选项进行关联所致
9、在当前页面新打开一个网页窗口如何定位新打开界面的元素:
now_handle = driver.current_window_handle #获取当前窗口句柄
print(now_handle) #输出当前获取的窗口句柄
all_handles=driver.window_handles #获取所有窗口句柄
for handle in all_handles:
if handle ! = now_handle: #除当前窗口之外的其他窗口
print("输出待选择的窗口句柄")
driver.switch_to_window(handle) #进入除当前窗口外的其他窗口
driver.find_element_by_xpath("XXXX")
driver.close() #关闭当前窗口
print(now_handle) #输出主窗口句柄
driver.switch_to_window(now_handle) #返回主窗口
10、通常情况下但凡元素位于iframe中时,必须要先进入到iframe中才能定位元素常见用法是使用driver.switch_to_frame("XXX")但也有时候会遇上有多个iframe且均没有id 其他属性均相同就有点犯难此时可以使用driver.switch_to_frame(0)这里使用的是index法,即第几个iframe,index是从0开始