我希望我的代码能够处理互联网中断一段时间的情况。目前我使用的是带有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')