if语句selenium python webdriver

时间:2015-11-24 22:14:43

标签: python selenium selenium-webdriver

我想检查某个窗口是否打开,是否要继续注销,但是如果不是打开窗口小部件然后注销。

小部件位于另一个框架内。我不想只是为了查看窗口小部件是否打开而不得不切换框架。

我的代码:

window=driver.find_element_by_id("DR44")
if window.is_displayed():
    userdropdown=driver.find_element_by_id("Menu").click()
    logout=driver.find_element_by_id("df456").click()
else:
     LaunchMenu=driver.find_element_by_id("launch").click()
     bvWidget=driver.find_element_by_id("54353sfd").click()
     launch= driver.find_element_by_id("3rfs").click()
     userdropdown=driver.find_element_by_id("userMdfd243l").click()
     logout=driver.find_element_by_id("efdf343").click()

我的错误:无法找到元素

我想查看是否在页面上找到了窗口小部件的标题,如果是,那么继续注销,如果没有打开窗口小部件然后注销。

1 个答案:

答案 0 :(得分:1)

如果您不切换到iframe,则无法与iframe中的任何元素进行交互。首先按driver.switch_to_frame()切换到iframe,您也不需要将一个元素分配给变量来点击。见下文:

driver.switch_to_frame(iframe) 

if driver.find_element_by_id("DR44").is_displayed():
    driver.find_element_by_id("Menu").click()
    driver.find_element_by_id("df456").click()
else:
    driver.find_element_by_id("launch").click()
    driver.find_element_by_id("54353sfd").click()
    driver.find_element_by_id("3rfs").click()
    driver.find_element_by_id("userMdfd243l").click()
    driver.find_element_by_id("efdf343").click()

需要注意的是:iframe是iframe ID列表