【发布时间】:2014-03-10 19:30:11
【问题描述】:
下午。目前正在尝试使用 Selenium webdriver 循环浏览页面上的链接列表。具体来说,它是单击一个链接,从所述页面中抓取一行文本以写入文件,返回并单击列表中的下一个链接。以下是我所拥有的:
def test_text_saver(self):
driver = self.driver
textsave = open("textsave.txt","w")
list_of_links = driver.find_elements_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li")
"""Initializing Link Count:"""
link_count = len(list_of_links)
while x <= link_count:
print x
driver.find_element_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[2]/div/div/ul/li["+str(x)+"]/a").click()
text = driver.find_element_by_xpath("//*[@id=\"learn-sub\"]/div[4]/div/div/div/div[1]/div[1]/div[1]/h1").text
textsave.write(text+"\n\n")
driver.implicitly_wait(5000)
driver.back()
x += 1
textsave.close()
运行时,它会转到初始页面,然后...返回主页面,而不是它应该去的子页面。打印 x,我可以看到它增加了三倍而不是一倍。之后它也会崩溃。我检查了我所有的 xpath 等,并确认它得到了列表中链接数量的正确计数。
任何输入都非常感谢 - 这实际上只是为了灵活我的 python/自动化,因为我只是进入两者。提前致谢!!
【问题讨论】: