# _*_coding:utf-8 _*_
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
import time
try:
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')
ActionChains(driver).move_to_element(driver.find_element_by_link_text('设置')).perform()
driver.find_element_by_link_text('搜索设置').click()
driver.implicitly_wait(10)
if driver.find_element_by_link_text('保存设置').is_displayed() == True:
print '可见'
else:
print '不可见'
if driver.find_element_by_link_text('保存设置').is_enabled() == True:
print '可点击'
else:
print '不可点击'
#time.sleep(2)
driver.find_element_by_link_text('保存设置').click()
driver.switch_to.alert.accept()
except Exception as e:
print e
在加入代码time.sleep(2)之前程序报错,但是从运行结果来看该元素是可见且可被使用的:
可见
可点击
Message: unknown error: Element <a href="#" class="prefpanelgo">...</a> is not clickable at point (580, 250). Other element would receive the click: <td id="se-setting-6">...</td>
(Session info: chrome=66.0.3359.117)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.10586 x86_64)
Process finished with exit code 0
为什么可见且可被使用的元素会不能点击?这个问题暂时还不清楚。
但是在点击元素之前加入time.sleep(2)程序便可正常运行
其他:
尝试使用
driver.implicitly_wait(10)
以及
WebDriverWait(driver,5,0.5)均不能解决这个问题