selenium中接受alert

selenium中提示错误:

 

selenium.common.exceptions.WebDriverException: Message: unknown error: Element ... 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()

 

你可能感兴趣的:(PythonPro,测试)