【问题标题】:Selenium/Python browser loopSelenium/Python 浏览器循环
【发布时间】:2015-11-27 15:30:17
【问题描述】:

我有一个用 Python 编写的基本脚本来检查 div 并单击按钮。我使用browser.implicitly_wait 自动重新加载,但是如何让它循环遍历代码而不重复它?

elem = browser.find_element_by_id('sitediv'); elem.send_keys('Red' + Keys.RETURN);

browser.implicitly_wait(10)

【问题讨论】:

  • 你能更清楚你想要达到的目标吗?
  • 我希望它继续运行/循环代码
  • 如果您想解决特定条件,请使用while <condition>,或者如果您想迭代特定次数,请使用for _1 in <number_of_iterations>。

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

您可以在整个 Internet 上找到有关 Python 循环的文档。

这是一个示例:

祝你阅读愉快!

【讨论】:

    【解决方案2】:

    这取决于你在等什么。

    下面是一个等待元素出现在页面上的例子,使用while和_is_visible函数来检查页面上是否存在元素:

    class DockerContainerDeployer(object):
    
        self.browser = webdriver.Firefox()
    
        def deploy(self)
            # actions...
            # wait until the docker container is deployed 
            # by checking a div that give us the status
            while not self._is_visible("#cluster-status .deployed"):
                # you can add an implicity wait to check it every 10s with
                # self.browser.implicitly_wait(10)
                pass
            # docker container deployed
    
        def _is_visible(self, locator, timeout = 2):
            """
            Check if an element is visible
            """
    
            try:
                ui.WebDriverWait(browser, timeout).until(EC.visibility_of_element_located((By.CSS_SELECTOR, locator)))
                return True
            except TimeoutException:
                return False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2015-02-21
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多