我在 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
这些是我用来缓解问题的各种方法:
该元素位于
<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']")))