【发布时间】:2019-09-14 20:08:12
【问题描述】:
我编写了一个测试,它解析来自网页的链接,并在循环中单击每个链接,然后返回主页面。但是每次迭代都伴随着一次又一次地解析整个网页并覆盖链接数组,尽管每次迭代只需要一个链接。我知道这是低效的。我该如何优化它?
我尝试只解析一次链接,然后循环遍历它们。在第一次迭代之后,它返回(到主页)并尝试单击第二个链接,但它不是交互式的(我认为这是因为存储在 links 数组中的 web 元素每次你去页)。
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get('https://yandex.ru')
def test_01(self):
driver = self.driver
links = []
time.sleep(3)
links = driver.find_elements_by_css_selector("a")
for i in range(len(links)):
links = driver.find_elements_by_css_selector("a")
links[i].click()
driver.get('https://yandex.ru')
time.sleep(3)
我期待更有效的解决方案。
【问题讨论】:
-
如果代码有效,您应该在Code Review询问
-
以字符串形式获取链接并使用
driver.get(link)而不是click。然后您甚至不必返回主页。
标签: python testing selenium-webdriver automated-tests