Irw*_*win 8 python selenium selenium-webdriver
我有一个内部Web应用程序,它有一个模态对话框.不幸的是,我不能在这里发布实际的Web应用程序位置,但让我尽可能地描述它.
我可以点击固定次数(例如:如果我知道有两个页面我可以点击两次)但我不确定如何改变它以便无论我有多少页面它都会运行.我想要一个普遍的解决方案; 据推测,这会使用某种循环来检查按钮是否已启用.如果是,则单击它.如果它被禁用,则退出循环.
问题是:如何在Selenium中设置循环,重复单击按钮直到它被禁用?
这是我尝试过的代码:
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.common.by import By
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
# Create a new instance of the Firefox driver
driver = webdriver.Firefox()
driver.get("http://localhost/myapp")
try:
wait = WebDriverWait(driver, 100)
wait.until(EC.element_to_be_clickable((By.ID,'menuIntroBox_buttonNext')))
driver.find_element_by_id("menuIntroBox_buttonNext").click()
# Click through the introduction text... this is the problematic code.
# Here I tried to wait for the element to be clickable, then tried to do a while
# loop so I can click on it as long as it's clickable, but it never seems to do the
# break.
wait.until(EC.element_to_be_clickable((By.ID,'main_buttonMissionTextNext')))
while EC.element_to_be_clickable((By.ID,'main_buttonMissionTextNext')):
element = driver.find_element_by_id("main_buttonMissionTextNext")
element.click()
print "Waiting until it's clickable."
if not element.is_enabled():
break
print "Here is where I'd do other stuff.... the stuff I want to actually do in the test case."
finally:
driver.quit()
Run Code Online (Sandbox Code Playgroud)
弄清楚了。这是相关的代码块:
wait.until(EC.element_to_be_clickable((By.ID, 'main_buttonMissionTextNext')))
while EC.element_to_be_clickable((By.ID,'main_buttonMissionTextNext')):
driver.find_element_by_id("main_buttonMissionTextNext").click()
if not driver.find_element_by_id("main_buttonMissionTextNext").click().is_enabled():
break
wait.until(EC.element_to_be_clickable((By.ID, 'main_buttonMissionTextNext')))
Run Code Online (Sandbox Code Playgroud)
我发现了两件事:
is_enabled()。我可能可以重构它以使其看起来更好,但基本思想现在就在这里。
| 归档时间: |
|
| 查看次数: |
5327 次 |
| 最近记录: |