使用Python和Chromedriver处理互联网异常的硒损失



我希望我的代码能够处理互联网中断一段时间的情况。目前我使用的是带有TimeoutException的try/except子句,但这不起作用,因为Chrome在没有互联网的情况下不会超时,它只是返回以下页面:

没有互联网

尝试:

  • 检查网络电缆、调制解调器和路由器

  • 重新连接到Wi-Fi

ERR_INTERNET_DISCONNECTED

由于没有超时,我的代码只是继续搜索元素,并且没有发现互联网的丢失。

当chrome中没有互联网时,有没有提出一个例外?


代码:

driver = webdriver.Chrome(executable_path=mypath)
driver.implicitly_wait(10)    
driver.set_page_load_timeout(10)
try:  
driver.get(url)
elem = driver.find_element_by_xpath(xpath).get_attribute("content")
except TimeoutException:
print('TimeoutException')

也许您可以检测元素No Internet是否存在

def has_connection(driver):
try:
driver.find_element_by_xpath('//span[@jsselect="heading" and @jsvalues=".innerHTML:msg"]')
return False
except: return True
driver = webdriver.Chrome()
driver.get("https://www.google.com")
if not has_connection(driver):
print('No Internet connection, aborted!')
driver.quit()
exit()
# connection is good continue
elem = driver.find_element_by_xpath(xpath).get_attribute("content")

虽然很晚了,但您可以使用

except exceptionType:
try:
driver.find_element(By.XPATH,'//body[@class="neterror"]')
print('Yes, the internet is down')
except:
print('No, the internet is ok')

相关内容

  • 没有找到相关文章