我不确定这是否可以解决问题,但总的来说,最好使用
WebDriverWait而不是使用WebDriveWait.until,
implicitly_wait因为它会一直调用提供的函数(例如),直到返回的值不是-
ish或超时(例如5000秒) )达到了-
在那个时候它提出一个。
driver.find_element_by_xpath``False``selenium.common.execptions.TimeoutException
import selenium.webdriver.support.ui as UIdef test_text_saver(self): driver = self.driver wait = UI.WebDriverWait(driver, 5000) with open("textsave.txt","w") as textsave: list_of_links = driver.find_elements_by_xpath("//*[@id="learn-sub"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li/a") for link in list_of_links: # 2 link.click() # 1 text = wait.until( lambda driver: driver.find_element_by_xpath("//*[@id="learn-sub"]/div[4]/div/div/div/div[1]/div[1]/div[1]/h1").text) textsave.write(text+"nn") driver.back()- 单击链接后,应等待加载链接的URL。因此,
wait.until
直接在link.click()
- 而不是使用
while x <= link_count:...x += 1
最好用
for link in list_of_links:
有人认为,它提高了可读性。而且,您真的不需要关心数字
x,您真正关心的只是循环链接,这就是它的
for-loop作用。



