尝试单击更多视图直至页面结束时似乎出现此错误(直到我看不到“查看更多”选项),但收到此错误消息
ElementClickInterceptedException 14 wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'select2-result-label'))).click()
15 while True:
---> 16 wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more'))).click()
17 try:
18 element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more')))
ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (231, 783)
(Session info: chrome=78.0.3904.108)
这是我的代码
while True:
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more'))).click()
try:
element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more')))
element.click()
except TimeoutException:
break
这是网站上的html
<a class="view_more" href="javascript:void(0);" onclick="_search('0')">VIEW MORE ...</a>
这是网站
page_link = 'http://beta.compuboxdata.com/fighter'
答案 0 :(得分:-1)
首先,为什么您要用两种不同的方式重复同一行代码?
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more'))).click()
在功能上等同于:
try:
element = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'view_more')))
element.click()
except TimeoutException:
break
保存用于处理超时异常。 我只是删除第一行,因为我看不到它的要点。 关于您的实际问题,请参见以下堆栈溢出问题的答案:https://stackoverflow.com/a/44916498/3715974
我最好的猜测是,这是由于javascript / ajax调用将内容加载到页面上,并且“查看更多”按钮无法立即使用,从而导致您的代码出现恐慌。通读该答案,它可能会给您带来更多的见解,但您也可以尝试捕获该异常,将其延迟一小段时间,然后重试。