“ for”循环不会继续(python)

时间:2020-07-20 17:40:32

标签: python selenium loops for-loop window

我需要帮助。 我的“ for”循环不会继续。

我错过了这个循环吗?还是应该做些什么来继续循环? 该代码用于从网站提取联系人。访问网址后,代码将打开第二个窗口。我第一次设法从第二个窗口中提取代码,但是“ for”循环不会继续。我应该怎么做才能继续这种关系?下面是代码:

null

1 个答案:

答案 0 :(得分:0)

您应该避免

time.sleep(x) 

尽可能! 在Selenium中,这会导致您出现一些错误。 相反,您应该使用“ ExpectedConditions”,例如:presentation_of_element_located(理想情况下按ID)。

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "myDynamicElement"))

您将需要以下库来运行以下代码:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

在这种情况下,它将等待10秒钟,直到找到您的元素为止;如果找不到该元素,则抛出“ TimeoutException”。这是等待元素的更优化的方法。 您还应避免使用Javascript单击,而应使用Selenium的“ .click”方法。

您的变量名称不正确。 在这种情况下,“ lista_do_for”并不精确。也许重命名为“ elementOfPage”或类似的名称。

关闭页面并要返回到原始页面后,您应该通过执行以下操作来重新调整该页面的焦点:

self.driver.switch_to.window(self.driver.window_handles[0])

此外,我建议您阅读python Selenium文档以全面了解该框架及其工作原理:

https://selenium-python.readthedocs.io/index.html

在某些情况下可以为您省钱。

希望这对您有帮助!