selenium中提示错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: Element <a href="#" class="prefpanelgo">...</a> is not clickable at point (580, 207). Other element would receive 
selenium.common.exceptions.NoAlertPresentException: Message: no such alert

搞了半天,没明白哪里没有定位出来。难道是定位元素的方法写错了?元素属性是动态的?然后发现并不是。

想起来,中午刚学过:可能是网页加载是异步的,导致有些节点还没有加载出来,但是代码已经在运行,所以在定位保存设置之前,先代码睡一会,所以有了以下的改进版:

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from time import sleep
import time
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://www.baidu.com')
# 鼠标悬停在 设置 链接
link = driver.find_element_by_link_text('设置')
ActionChains(driver).move_to_element(link).perform()
# 打开搜索设置
driver.find_element_by_link_text('搜索设置').click()
sleep(2)
# 保存设置
driver.find_element(By.XPATH, '//*[@id="gxszButton"]/a[1]').click()
# driver.find_element(By.LINK_TEXT, '保存设置').click()
time.sleep(2)
# 接受警告预警
driver.switch_to_alert().accept()
driver.quit()
                    selenium中提示错误: selenium.common.exceptions.WebDriverException: Message: unknown error: Element &amp;lt;a href=&quot;#&quot; class=&quot;prefpanelgo&quot;&amp;gt;...&amp;lt;/a&amp;gt; is not clickable at point (580, 207). Other eleme...
				
selenium提供switch_to_alert方法:捕获弹出对话框(可以定位alert、confirm、prompt对话框) switch_to_alert()    –定位弹出对话框 text()               –获取对话框文本值 accept()             –相当于点击“确认” dismiss()            –相当于点击“取消” send_keys()          –输入值(alert和confirm没有输入对话框,所以就不用能用了,只能使用在prompt里) 页面弹窗有 3 种类型: alert(警告信息) confirm(确认信
第一次接触自动化用例的执行,出现并解决了下面几个小问题 这次的项目是ECSHOP(https://pan.baidu.com/s/1cDIhxEV-9stoJvorY1kVcA)提取码是1234,用的是python3.8,win10 64,后台mysql57,apache,wamp server。 1、no such alert 在执行关于评价商品的用例时,出现了不能正确获取屏幕弹窗的问题。 显示的message是no such alert,最开始使用了最简单的等待时间sleep from time im
弹窗样式如下: 1.识别移动到弹窗,检查元素,无法显示使用,弹窗不在前端页面 2.网上都说可能是alert,confirm和promte这三种弹窗,可以用driver.switch_to.alert切换到到弹窗,但是仍然会报错 raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoAlertPresentExce 因为是个普通的弹出提示信息,闪几秒就消失,没有输入框或者按钮,没有自己的句柄,它出现的时候页面还是可以操作的就这么个alert 我使用对alert的一些操作的不行的,driver.switch_to_alert().text 也是No such Alert…… 我甚至...
在使用 Selenium 进行自动化测试时,有时候需要处理网页的弹窗,这时候就需要使用 alert。在 Selenium ,可以使用 switch_to.alert() 方法来切换到弹窗,并使用 text 属性获取弹窗的文本信息,使用 accept() 方法来点击弹窗的确认按钮,使用 dismiss() 方法来点击弹窗的取消按钮。下面是一个示例代码: ```python from selenium import webdriver from selenium.webdriver.common.alert import Alert # 创建浏览器对象 browser = webdriver.Chrome() # 打开网页 browser.get('https://www.baidu.com') # 点击按钮,触发弹窗 button = browser.find_element_by_id('button') button.click() # 切换到弹窗 alert = Alert(browser) # 获取弹窗的文本信息 text = alert.text print(text) # 点击弹窗的确认按钮 alert.accept() # 关闭浏览器 browser.quit() 注意,使用 switch_to.alert() 方法切换到弹窗后,需要在处理完弹窗后再切换回原来的窗口,可以使用 switch_to.default_content() 方法来切换回原来的窗口。