Python Selenium 提交仅在调试模式下有效

问题描述 投票:0回答:1

我的带有selenium的python程序有一个奇怪的行为:当我在调试模式下启动它但在正常模式下启动它时它运行得很好。在正常模式下不考虑 FromDate。

我认为这是一个时序问题,我放置了几次等待(显式和隐式等待),没有任何区别。请注意,该按钮是提交按钮,而不是单击按钮。 有解决这个问题的想法吗?

url = "https://my.elexys.be/MarketInformation/SpotBelpex.aspx"
driver = webdriver.Chrome()
driver.get(url)
FromDate = driver.find_element("name", "ctl00$contentPlaceHolder$fromASPxDateEdit")
FromDate.clear()
FromDate.send_keys("01/11/2023")
UntilDate = driver.find_element("name", "ctl00$contentPlaceHolder$untilASPxDateEdit")
UntilDate.clear()
UntilDate.send_keys("01/12/2023")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "ctl00$contentPlaceHolder$refreshBelpexCustomButton")))
ShowData_button = driver.find_element("name", "ctl00$contentPlaceHolder$refreshBelpexCustomButton")
ShowData_button.submit()
python selenium-webdriver debugging form-submit webdriverwait
1个回答
0
投票

您单击“显示数据”按钮的速度太快 - 已输入更改,但未作为输入事件应用。

为了模拟更接近用户流程的输入事件,我建议添加诸如按 Enter 之类的东西。

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait

url = "https://my.elexys.be/MarketInformation/SpotBelpex.aspx"
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
action_chains = ActionChains(driver)

driver.get(url)
FromDate = driver.find_element("name", "ctl00$contentPlaceHolder$fromASPxDateEdit")
FromDate.clear()
FromDate.send_keys("01/11/2023")
action_chains.send_keys(Keys.ENTER).perform()

UntilDate = driver.find_element("name", "ctl00$contentPlaceHolder$untilASPxDateEdit")
UntilDate.clear()
UntilDate.send_keys("01/12/2023")
action_chains.send_keys(Keys.ENTER).perform()

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "ctl00$contentPlaceHolder$refreshBelpexCustomButton")))
ShowData_button = driver.find_element("name", "ctl00$contentPlaceHolder$refreshBelpexCustomButton")
ShowData_button.submit()
© www.soinside.com 2019 - 2024. All rights reserved.