【发布时间】:2019-01-26 16:59:13
【问题描述】:
我正在尝试从 IBM 服务页面获取所有服务标题,但出现以下错误:
我想知道下一页是否存在。所以,我可能会打破循环。或者让我的循环保持这么多的迭代。
这是我的代码:
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
def writefile(links):
with open('url_list.txt', 'w') as file:
file.writelines("%s\n" % link for link in links)
start_url = "https://www.ibm.com/us-en/products/categories?size=30&selectedTopicRoot=technologyTopics&types[0]=service"
links = []
chrome_path = r"C:\Users\IBM_ADMIN\Anaconda3\selenium\webdriver\Chrome\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get(start_url)
time.sleep(15)
while True:
time.sleep(5)
results = driver.find_elements_by_class_name("offering--name")
for i in range(len(results)):
links.append(results[i].text)
writefile(links)
try:
next = driver.find_element_by_xpath('//*[@id="IBMAccessibleItemComponents-next"]')
if (next.is_enabled()):
next.click()
else:
break
except NoSuchElementException:
break
driver.close()
【问题讨论】:
-
也许等待元素可点击:stackoverflow.com/a/28110129/977593?
-
@slackmart 不,我不是在等待元素可点击。我想通过查看下一个按钮是否可点击来查看下一页是否存在。
标签: python selenium selenium-chromedriver