关于Selenium的异常:如何继续脚本?
我的代码一直有问题。当我终于能够打开网页,点击一个按钮,下载excel文件时,我遇到了一个错误:找不到这样的元素 我有一个URL列表,Selenium会仔细检查该列表,直到它遇到一个具有不同配置的URL,并且找不到“元素”。我只希望python跳过该url并转到下一个url。我可以在将来手动返回“断开的url” 这是我的代码:关于Selenium的异常:如何继续脚本?,selenium,exception,download,element,Selenium,Exception,Download,Element,我的代码一直有问题。当我终于能够打开网页,点击一个按钮,下载excel文件时,我遇到了一个错误:找不到这样的元素 我有一个URL列表,Selenium会仔细检查该列表,直到它遇到一个具有不同配置的URL,并且找不到“元素”。我只希望python跳过该url并转到下一个url。我可以在将来手动返回“断开的url” 这是我的代码: with open('C:/Users/ovtch/PyScript/source.csv', 'r') as csvfile: reader = csv.Dic
with open('C:/Users/ovtch/PyScript/source.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
urlList.append(row['URL'])
driver = webdriver.Chrome(executable_path='chromedriver.exe')
def downloadCSV():
count=1
for url in urlList:
driver.get(url)
# Page Scraping Prepare
time.sleep(1)
driver.find_element_by_xpath('my path').click()
time.sleep(1)
driver.find_element_by_xpath('my path').click()
count+=1
"""Show starting time"""
print("Start project time")
print(datetime.datetime.now().time())
downloadCSV()
"""Show end time"""
print("End project time")
print("Success")
time.sleep(8)
#driver.quit()
您可以使用try/catch和ignore error继续循环:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#your code....
for url in urlList:
try:
driver.get(url)
# Page Scraping Prepare
# Wait until your button is clickable and click
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "my path"))).click()
except:
continue
尝试这种方法,将find_元素\u by_*方法包装在异常块中,并相应地处理异常
from selenium.common.exceptions import NoSuchElementException
def downloadCSV():
count=1
for url in urlList:
try:
driver.get(url)
# Page Scraping Prepare
time.sleep(1)
driver.find_element_by_xpath('my path').click()
time.sleep(1)
driver.find_element_by_xpath('my path').click()
count+=1
except NoSuchElementException:
pass # or handle the error
似乎
count
变量是多余的,所以您可以删除它。为什么要单击同一个元素两次?我必须单击两次,否则它不会单击它!您是否也手动单击它两次?如果没有,你不应该点击它两次,但只需要更好的方法谢谢!这个很好用!现在我又遇到了另一个问题…网站不允许我连续下载超过5次…我有2900次要下载!!!这可能是一个网站的限制。如果下载脚本中出现错误,请将其粘贴到此处