python - Selenium Webdriver:如何响应提示
问题描述
我尝试使用 Selenium WebDriver 和 Python 为网页设置测试。因此我启动了 Docker 镜像selenium/standalone-firefox。
在这个测试中,通常会弹出一个 JavaScript 书面提示,并希望在我可以单击 OK 之前收到一个条目。
但是我怎样才能与这个提示和 OK 按钮交互呢?
在 Selenium IDE 上,记录器answer on next prompt
用于此目的。如何用 Python-Selenium 做到这一点?如果 Python 不支持相应的命令,我如何获取所需的信息以对可用命令执行相同操作?
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
from selenium.webdriver.firefox.options import Options
# connect to docker Selenium Server
options = Options()
driver = webdriver.Remote(
command_executor='http://localhost:4444/wd/hub',
desired_capabilities=options.to_capabilities()
)
driver.get("https://www.ecalc.ch/motorcalc.php?hacker&lang=en&weight=4500&calc=auw&motornumber=1&warea=60&elevation=300&airtemp=25&motor=hacker&type=2|a60-7xs_v4_28-pole&gear=1&propeller=apc_electric&diameter=18&pitch=10.0&blades=2&batteries=topfuel_light_4500mah_-_30/45c&s=8&esc=master_spin_160_pro&cooling=good")
print(driver.title)
driver.find_element_by_id("modalConfirmOk").click()
driver.find_element_by_name("btnCalculate").click()
driver.find_element_by_id("AddCSV").click()
????
解决方案
您必须处理提示警报。试试看:
driver.switchTo().alert().sendKeys("Your project name");
推荐阅读
- typescript - 我可以在没有 strictNullChecks: false 的情况下解决这个问题吗?
- python - 对 python venv 和全局模块的不满
- python - lstm 中的最后一个密集层出错,期望 (1,) 但给定 (88,),但对于我的模型,我需要最后一层仅为 88
- bazel - 读取 WORKSPACE 中的文件内容
- excel - 如何忽略使用可选参数的代码?
- javascript - 快递+猫鼬。如何使用相同的“hidenId”参数获取所有备份集合?
- javascript - 在 bootstrap-vue 项目中包含的方法没有被触发
- tensorflow - 使用 keras 和 tensorflow 的更快的 rcnn 代码示例
- android - 尝试在 RecyclerView 中显示大位图图像 Android 显示错误 setDataSource failed
- ios - 如何运行导致框架运行时错误“代码签名无效”的 iOS 应用程序