gpt4 book ai didi

python - Selenium click() 无需等待页面加载 Python

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:43 25 4
gpt4 key购买 nike

我正在尝试编写一个 Python 程序来帮助在网站上进行预订。我知道预订可用的具体时间。我希望使用 Selenium 来实现这一点。我的策略是打开 10 个单独的浏览器窗口,然后让它们在可以进行预订的具体时间之前的 0.02 秒开始以 0.1 秒的间隔单击“提交”。我遇到的问题是每个 click() 命令似乎都在等待页面加载,然后再转到下一个 click() 命令。是否可以单击()然后在不等待页面加载的情况下继续执行下一个命令?这些页面将加载,因为它们位于不同的窗口中,我计划在此之后手动与它们进行交互。这就是我所拥有的。我希望 click() 命令立即触发,但它们没有。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

browser1 = webdriver.Firefox()
browser1.get('http://www.reservationsite.com')

browser2 = webdriver.Firefox()
browser2.get('http://www.reservationsite.com')

browser3 = webdriver.Firefox()
browser3.get('http://www.reservationsite.com')

def firstclick():
elem1 = browser1.find_element_by_id('btnbookdates').click()
return

def secondclick():
elem2 = browser2.find_element_by_id('btnbookdates').click()
return

def thirdclick():
elem3 = browser3.find_element_by_id('btnbookdates').click()
return

firstclick()
secondclick()
thirdclick()

最佳答案

您可以尝试使用 unstable load strategy 加载 Firefox (未测试):

There is beta feature to make firefox not wait for the full page to load after calling .get or .click. This may cause immediate find's to break, so please be sure to use an implicit or explicit wait too. This is only available for Firefox and not other browsers.

profile = webdriver.FirefoxProfile()
profile.set_preference("webdriver.load.strategy", "unstable")

driver = webdriver.Firefox(firefox_profile=profile)

将它与 Explicit Wait 结合起来通过 id 查找元素:

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

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

另一种有点“疯狂”的选择是使用 sikuli用于点击指定图像(例如按钮的屏幕截图)或屏幕上指定坐标的屏幕自动化工具。

关于python - Selenium click() 无需等待页面加载 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com