英文:
TimeoutException object is not callable in Selenium
问题
在运行以下代码时,我得到了TimeoutException对象不可调用的错误。
driver = webdriver.Chrome(options=options)
try:
WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
except exceptions.TimeoutException as te:
Do something
完整的错误消息如下:
open_date_found = WebDriverWait(driver, 2, ).until(ec.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
TypeError: 'TimeoutException'对象不可调用
python-BaseException
错误消息出现在代码的第二行运行时,甚至没有捕捉到异常。
更新:
我已将代码更改如下以忽略异常。但是,我仍然遇到了TimeoutException错误。Selenium不会忽略它!
open_date_found = WebDriverWait(driver, 2, .5, TimeoutException).until(ec.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
(No symbol) [0x003037D3]
(No symbol) [0x00298B81]
(No symbol) [0x0019B36D]
(No symbol) [0x001CD382]
(No symbol) [0x001CD4BB]
(No symbol) [0x00203302]
(No symbol) [0x001EB464]
(No symbol) [0x00201215]
(No symbol) [0x001EB216]
(No symbol) [0x001C0D97]
(No symbol) [0x001C253D]
GetHandleVerifier [0x0057ABF2+2510930]
GetHandleVerifier [0x005A8EC1+2700065]
GetHandleVerifier [0x005AC86C+2714828]
GetHandleVerifier [0x003B3480+645344]
(No symbol) [0x002A0FD2]
(No symbol) [0x002A6C68]
(No symbol) [0x002A6D4B]
(No symbol) [0x002B0D6B]
BaseThreadInitThunk [0x76777D69+25]
RtlInitializeExceptionChain [0x7790BB9B+107]
RtlClearBits [0x7790BB1F+191]
(No symbol) [0x00000000]
非常感谢您的帮助。
英文:
In running the below code, I get TimeoutException object is not callable.
driver = webdriver.Chrome(options=options)
try:
WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
except exceptions.TimeoutException as te:
Do something
The complete error message is below:
open_date_found = WebDriverWait(driver, 2, ).until(ec.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
TypeError: 'TimeoutException' object is not callable
python-BaseException
The error message comes in running the second line of the code, it does not even catch the exception.
Update:
I changed the code as below to ignore the exception. However, I get TimeoutException error. Selenium does not ignore it!
open_date_found = WebDriverWait(driver, 2, .5, TimeoutException).until(ec.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
(No symbol) [0x003037D3]
(No symbol) [0x00298B81]
(No symbol) [0x0019B36D]
(No symbol) [0x001CD382]
(No symbol) [0x001CD4BB]
(No symbol) [0x00203302]
(No symbol) [0x001EB464]
(No symbol) [0x00201215]
(No symbol) [0x001EB216]
(No symbol) [0x001C0D97]
(No symbol) [0x001C253D]
GetHandleVerifier [0x0057ABF2+2510930]
GetHandleVerifier [0x005A8EC1+2700065]
GetHandleVerifier [0x005AC86C+2714828]
GetHandleVerifier [0x003B3480+645344]
(No symbol) [0x002A0FD2]
(No symbol) [0x002A6C68]
(No symbol) [0x002A6D4B]
(No symbol) [0x002B0D6B]
BaseThreadInitThunk [0x76777D69+25]
RtlInitializeExceptionChain [0x7790BB9B+107]
RtlClearBits [0x7790BB1F+191]
(No symbol) [0x00000000]
Your help would be much appreciated.
答案1
得分: 0
不要捕获原始异常。因为你已经使用了 _WebDriverWait_,只捕获 _`TimeoutException`_:
```python
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome(options=options)
try:
WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
except TimeoutException:
# 做一些处理
英文:
Don't catch the raw expection. As you have used WebDriverWait catch the TimeoutException
only:
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome(options=options)
try:
WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']"))).click()
except TimeoutException:
# Do something
答案2
得分: 0
以下是已翻译的内容:
"The piece of code that you have shared seems to be fine, since the line can possibly throw an exception and you've handled it.
From the error itself, it seems that you are trying to do something equivalent to te()
and it's that line that's causing the conflict. Can you share the error handling code?
Edit:
Try:
e = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']")))
e.click()
英文:
The piece of code that you have shared seems to be fine, since the line can possibly throw an exception and you've handled it.
From the error itself, it seems that you are trying to do something equivalent to te()
and it's that line that's causing the conflict. Can you share the error handling code?
Edit:
Try:
e = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='ui-datepicker-div']//a[@class='ui-state-default']")))
e.click()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论