当我尝试在网页中输入电子邮件地址时,Selenium 返回 TimeoutException

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

我在 MacOS 中使用 Selenium 和 Chrome 浏览器来测试我的代码,在网页中输入一些数据来检索数据。

使用此代码:

driver.get("https://careers-se.icims.com/jobs/70145/login?mobile=false&width=1200&height=500&bga=true&needsRedirect=false&jan1offset=330&jun1offset=330")
driver.implicitly_wait(10)
enterEmail = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,
                                                                        "input[name='css_loginName']")))

enterEmail.clear()
enterEmail.send_keys("Hello",Keys.RETURN)

但是,当我尝试在特定网页中查找该元素时,我收到超时异常错误:


File "/Users/Library/Python/3.9/lib/python/site-packages/selenium/webdriver/support/wait.py", line 105, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 
Stacktrace:
0   chromedriver                        0x0000000102c228cc chromedriver + 4368588
1   chromedriver                        0x0000000102c1ad60 chromedriver + 4336992
2   chromedriver                        0x000000010283ec04 chromedriver + 289796
3   chromedriver                        0x0000000102880e00 chromedriver + 560640
4   chromedriver                        0x00000001028b95ec chromedriver + 792044
5   chromedriver                        0x0000000102875ab4 chromedriver + 514740
6   chromedriver                        0x000000010287650c chromedriver + 517388
7   chromedriver                        0x0000000102be6de8 chromedriver + 4124136
8   chromedriver                        0x0000000102bebbd8 chromedriver + 4144088
9   chromedriver                        0x0000000102bcc7b0 chromedriver + 4016048
10  chromedriver                        0x0000000102bec508 chromedriver + 4146440
11  chromedriver                        0x0000000102bbe264 chromedriver + 3957348
12  chromedriver                        0x0000000102c0be50 chromedriver + 4275792
13  chromedriver                        0x0000000102c0bfcc chromedriver + 4276172
14  chromedriver                        0x0000000102c1a9c0 chromedriver + 4336064
15  libsystem_pthread.dylib             0x000000018922a034 _pthread_start + 136
16  libsystem_pthread.dylib             0x0000000189224e3c thread_start + 8

这些是我用来缓解问题的各种方法:

  1. 尝试通过各种其他选择方法(例如 ID 、名称或类)来定位元素。我仍然收到 TimeoutException 错误。
  2. 尝试找出问题是否仅与该选择有关,因此尝试在网页中执行其他操作 - >即使这是失败。我无法访问 Selenium 网站的任何部分。
  3. 尝试使用显式和隐式等待。
python python-3.x selenium-webdriver selenium-chromedriver
1个回答
0
投票

该元素位于

<iframe>
中,但
Selenium
frame
视为分离页面,需要切换到框架才能在该框架中搜索

frame = driver.find_element(By.CSS_SELECTOR, 'iframe')

driver.switch_to.frame(frame)

enter_email = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='css_loginName']")))
© www.soinside.com 2019 - 2024. All rights reserved.