Selenium 报错问题

1.在一个页面跳转到第三方支付页面时,用driver.implicitly_wait 出现报错:

raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.WebDriverException: Message: target frame detached

查到Remote_connection 里面的exceute方法中,链接url的response 报错 404。 猜测是在跳转到支付页面时,先断开之前的链接,再去请求支付的链接,而断开时,请求的链接就会返回404.  

解决方法:可以先用time.sleep 等待几秒钟去链接新的页面,然后再用driver.implicitly_wait 方法就可以了

2.driver.implicitly_wait失效

如果获取元素和动作使用同一条语句,则会使隐性等待失效

将获取元素和动作拆分开来

解决方法如下:

getcode = driver.find_element_by_id("com.mingyuan.dwinmall:id/btn_get_code")

time.sleep(50)

getcode.click()

3.mac 配置chromedriver

电脑关机,然后在开机时按住 command + R 键,直到出现苹果 logo 和进度条时松开,进入OS X恢复模式。在终端输入命令csrutil disable,然后关闭终端。进入恢复模式后打开【实用工具】——【终端】

mv: rename chromedriver to /usr/bin/chromedriver: Read-only file system

然后百度的时候我又找到这样的一篇文章,参考类似的问题,我试着直接执行如下命令挂载写入权限

sudo mount -uw /这时候再试一次sudo mv chromedriver /usr/bin

4. element click intercepted

ele = driver.find_element_by_xpath ("//p[@class='comment-form-rating-btn']/button" )# star

webdriver.ActionChains ( driver ).move_to_element ( ele ).click ( ele ).perform ()

5. selenium.common.exceptions.NoSuchWindowException: Message: no such window

解决方法:切换到最后一个窗口

windows =self.driver.window_handles

self.driver.switch_to.window (-1)

6.'list' object has no attribute 'click'

将”driver.find_elements_by_xpath“改为“driver.find_element_by_xpath”即可解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容