我尝试在office365环境中查找并单击电子邮件按钮。
参见图片:
我想是因为按钮在网页的工具栏/子框里,我找不到它在iframe里。
问题似乎出在下面的代码行中:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='Mail']"))).click()
HTML代码如下所示:
我得到的错误是:
Traceback (most recent call last):
File "C:\Users\123\AppData\Local\00-Python\test.py", line 21, in <module>
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='Mail']"))).click()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\123\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\support\wait.py", line 95, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
(No symbol) [0x009A6643]
(No symbol) [0x0093BE21]
(No symbol) [0x0083DA9D]
(No symbol) [0x00871342]
(No symbol) [0x0087147B]
(No symbol) [0x008A8DC2]
(No symbol) [0x0088FDC4]
(No symbol) [0x008A6B09]
(No symbol) [0x0088FB76]
(No symbol) [0x008649C1]
(No symbol) [0x00865E5D]
GetHandleVerifier [0x00C1A142+2497106]
GetHandleVerifier [0x00C485D3+2686691]
GetHandleVerifier [0x00C4BB9C+2700460]
GetHandleVerifier [0x00A53B10+635936]
(No symbol) [0x00944A1F]
(No symbol) [0x0094A418]
(No symbol) [0x0094A505]
(No symbol) [0x0095508B]
BaseThreadInitThunk [0x76D900F9+25]
RtlGetAppContainerNamedObjectPath [0x772D7BBE+286]
RtlGetAppContainerNamedObjectPath [0x772D7B8E+238]
1条答案
按热度按时间j0pj023g1#
请尝试使用
EC.visibility_of_element_located
。并尝试以下XPath表达式//div[@title="Outlook"]
下面是完整的代码,我用它工作得非常好:
注:以上代码仅供参考,我认为您只能使用最后一行代码(您实际点击Outlook的地方),不需要在所有代码行都使用
ExplicitWait
。