**
无法定位元素问题
please use headless,Unable to find element with xpath,Unable to find element with frame…使用phantomjs来进行模拟人的计算机行为的时候的报错(么牢牢啊)以及自己的问题解决
**
**
前言:
**
please use headless是pychram针对phantom的,
selenium已经放弃PhantomJS,建议使用火狐或者谷歌无界面浏览器。
报错是还偶尔看到了“phantom已死”,一时不知如何是好。。。
#针对 please use headless的方法
#降低selenium的版本
#卸载selenium,重新安装pip install selenium==2.48.0
#或者使用别的浏览器,谷歌乱七八糟的报错很多
先是使用了phantomjs,并且使用了pychram来编写,
起初以为是pychram不支持版本之类的,就使用了ide测试,
因为之前试过是ok的但是仍然不行,查了好多资料,
不得解,以下是一些报错和可能的解决方法(我不是这些个问题,所以都没有解决)
1、这个应该是xpath没写对
2、这个则是可能是本质的后面的原因,也可能是需要time.sleep来等待几秒以加载元素
3、这个问题的话,一般不会遇到,差不多都是可以编辑的
4、这个是附带的,因为我想要截图看以下情况,上面直接报错(也就是后面的原因),也就停止了
5、有一个frame定位不到问题,然而也不是很懂,这个frame是另外的一个页面,里面会包含所有的元素,但是有一定缺失及局限性,我这的情况是:
确实要的元素里面也有,但是原html树状块中所要的元素是在frame代码快之上的,并且比frame里的功能齐全,主要需要的属性也只在上面,就。。离谱
原页面我需要找的是一个搜索框,即input
蓝色区域是frame代码块中的,可以看到里面没有input属 性,所以我定位到了frame在这里好像并不适用
以上都是通过phantomjs来查找元素时的报错
然后就是了以下selenium的chorm驱动器创建的浏览器获取,结果获取成功
另外,过程中也有一些问题
比如说通过了send_keys方法已经在搜索框中输入了内容,但是button按钮找不到,也是费了点劲
可以知道那个放大镜的功能元素点击(按钮)属性找不到
后来干脆直接使用模拟的键盘操作----回车
仍然定位这个搜索框,即可
driver.find_element_by_xpath('//input[@id="srch"]').send_keys(Keys.ENTER)
主要的问题解决方法是直接使用各浏览器的驱动来进行元素的筛选,而不是使用phantomjs进行,最后,ide里调试好了,复制进pychram,程序成功运行。。。。