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 &lt;a href="#" class="prefpanelgo"&gt;...&lt;/a&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() 方法来切换回原来的窗口。