当前位置: 首页 > 知识库问答 >
问题:

如何优化等待时间?(Python)[重复]

郭阳曜
2023-03-14

由于我正在使用的网站的随机加载时间,我必须等待某些html元素出现才能使用它们。我利用了时间。用于测试目的的sleep命令,但现在要优化所有内容。我尝试过各种来自网络的明确的等待建议,但它们在某个点上都发生了冲突。

下面是一个代码示例:

folder = driver.find_element_by_xpath("//button[@id='submit']")
folder.click()
time.sleep(6)
folder = driver.find_element_by_xpath("//button[@ngbtooltip='Create New Project']")
folder.click()

提前谢谢各位!

共有1个答案

闻人栋
2023-03-14

stackoverflow.com/a/26567563/10306224有一个可行的解决方案。下面是带有标头的代码示例:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
timeout = 10
driver.get("https://yoururl.com/")

folder = driver.find_element_by_xpath("//button[@id='submit']")
folder.click()
element_present = EC.presence_of_element_located((By.XPATH, "//button[@ngbtooltip='Create New Project']"))
WebDriverWait(driver, timeout).until(element_present)

folder = driver.find_element_by_xpath("//button[@ngbtooltip='Create New Project']")
folder.click()

我认为XPATH是我的问题。

 类似资料:
  • 我们知道优先级调度可以是抢占式的或非抢占式的。这两个中的哪一个通常平均等待时间最少??它们的性能会根据测试用例而变化吗??

  • 问题内容: 我找不到如何测量线程等待锁定的时间。我必须确定一个线程是否正在等待锁定超过1秒,如果需要,则运行另一个线程。谢谢! 问题答案: 试试这个:

  • 问题内容: 在Bash脚本中,我想执行以下操作: 即,在后台启动两个应用程序,并给它们60秒以完成其工作。然后,如果他们没有在该时间间隔内完成,请杀死他们。 不幸的是,上述内容不起作用,因为它是可执行文件,而它是Shell命令。我尝试将其更改为: 但这仍然行不通,因为只能在同一外壳程序内启动的PID上进行调用。 有任何想法吗? 问题答案: 将PID写入文件并像这样启动应用程序: 这将创建另一个hi

  • 之前介绍过的所有阻塞调用,将会阻塞一段不确定的时间,将线程挂起直到等待的事件发生。在很多情况下,这样的方式很不错,但是在其他一些情况下,你就需要限制一下线程等待的时间了。这允许你发送一些类似“我还存活”的信息,无论是对交互式用户,或是其他进程,亦或当用户放弃等待,你可以按下“取消”键直接终止等待。 介绍两种可能是你希望指定的超时方式:一种是“时延”的超时方式,另一种是“绝对”超时方式。第一种方式,

  • 问题内容: 我需要模拟泊松等待时间。我发现了许多模拟到达次数的示例,但是在给定平均等待时间的情况下,我需要模拟一次到达的等待时间。 我一直在寻找这样的代码: 但这是到达的次数,不是到达的时间。 效率优于准确性,这是因为功耗比时间更重要。我使用的语言是Java,如果该算法仅使用Random类中可用的方法,那将是最好的选择,但这不是必需的。 问题答案: 到达之间的时间是指数分布,您可以使用以下公式生成

  • 我正在尝试编写一个依赖于selenium中最后一个事件的事件序列。首先点击登录,加载一个新的页面,然后点击页面上的滚动框,然后点击滚动框内的按钮,直到滚动框被点击才会被加载。 我试图停止使用time.sleep(x),因为我读到这是不好的做法,我试图了解更多关于硒如何工作的信息。 我得到的不起作用的代码是 我能让它工作的唯一方法是在之前放一个。根据我的理解,网络驱动程序的等待和预期条件应该会否定我