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”即可解决。
网友评论