python - python selenium 输入搜索查询然后等待
问题描述
actions = ActionChains(driver)
actions.send_keys(search_query + Keys.ENTER)
actions.perform()
# code to wait until page loads
src = driver.page_source
我将如何实现这一点?我正在尝试将密钥发送到我拥有的搜索框,然后在 .perform 之后我希望它等到搜索结果加载,然后获取源代码。硒有可能吗?
试图找到一种比time.sleep(2)
可能更好的方法driver.wait_until_page_loads()
解决方案
我希望它等到搜索结果加载
您正在寻找的是WebDriverWait
(又名“显式等待”)。
您想选择一个表示结果已加载的特定元素并等待。假设您正在等待可以使用 of 定位的元素的id
存在mySearchResults
。代码看起来像这样。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# create driver and execute search here
# now wait for the presence of the `mySearchResults` element.
# if it is not found within 10 secs, a `TimeOutException` is raised.
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "mySearchResults")))
推荐阅读
- pivot - 我有一个 pinescript 需要从版本 2 转换到版本 4
- javascript - 由 GetYourGuide 提供支持
- java - Why need Java Modules to structuring projects?
- ruby-on-rails - SubscribersController#create 中的 ActionController::ParameterMissing
- asp.net - Wordpress x .Net / Javascript 单点登录 SSO
- java - 集成 Firebase 云消息传递时出现重复类错误
- xml - XPath 表达式在 XSL 中找不到匹配项
- android - 如何从 4 面更改 Android Studio 中的旋转矩阵比例?
- angular - 更改后,我的状态视图在以 Angular 8 重新加载我的页面之前未更新
- reactjs - 如何使用 Gatsby 读取 cookie?