【问题标题】:Switch frames with selenium and phantomJS使用 selenium 和 phantomJS 切换帧
【发布时间】:2016-07-05 15:22:56
【问题描述】:

我需要打开此页面上的搜索窗口。

https://permits.losgatosca.gov/CitizenAccess/default.aspx

使用 firefox 工作得很好,但是当我尝试对 phantomJS 做同样的事情时,我得到了一个错误。

这是我用来打开搜索的代码

BUTTON_id =  'ctl00_PlaceHolderMain_TabDataList_TabsDataList_ctl01_LinksDataList_ctl00_LinkItemUrl' #'//*[@id="ctl00_PlaceHolderMain_TabDataList_TabsDataList_ctl01_LinksDataList_ctl00_LinkItemUrl"]/span'
driver_1.switch_to_frame("ACAFrame")
button = driver_1.find_element_by_id(BUTTON_id)
button.click()

这是我在使用 phanthomJS 时遇到的错误:

Message: Error Message => 'Unable to switch to frame'

this 帖子中说使用:

driver.switchTo().frame(frame_index)
driver.switchTo().frame(frame_id)
driver.switchTo().frame(frame_object)

它解决了问题,但我不知道该放什么:

frame_index         
frame_id           
frame_object   

【问题讨论】:

    标签: python selenium iframe phantomjs


    【解决方案1】:

    这是你应该尝试的:

    • seleniumPhantomJS 升级到最新版本
    • 在切换到框架之前添加wait

      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      
      wait = WebDriverWait(driver, 10)
      wait.until(EC.presence_of_element_located((By.ID, "ACAFrame")))
      
      driver.switch_to.frame("ACAFrame")
      

    (为我工作)

    【讨论】:

    • 您是否在页面上对其进行了测试?我收到此错误: raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Screenshot: available via screen
    • @LuisRamonRamirezRodriguez 是的,为我工作。我的答案有更新,请确保您尝试过最新版本的答案
    • 它工作得很好。有没有办法优化等待时间?
    • @LuisRamonRamirezRodriguez 好极了,等待帧出现需要多长时间?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多