首页 > 解决方案 > 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()

????

标签: pythonseleniumselenium-webdriver

解决方案


您必须处理提示警报。试试看:

driver.switchTo().alert().sendKeys("Your project name");

推荐阅读