在硒web驱动程序中如何选择正确的iframe

我试图单击此页面上的元素:


url = 'https://finance.yahoo.com/quote/GOOG?ltr=1'

driver = webdriver.Firefox()

driver.get(url)

driver.find_element_by_link_text('Financials')

现在,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时:


driver.find_element_by_link_text('Cash Flow')

driver.find_element_by_link_text('Balance Sheet')

driver.find_element_by_link_text('Quarterly')

全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。


我认为这是由于使用了错误的iframe,而我找到了所有iframe:


driver.find_elements_by_tag_name('iframe')

返回9个元素。但是我在确定要单击的元素属于哪个iframe时遇到了麻烦。我也按顺序浏览了iframe,但仍然找不到我感兴趣的元素。


肥皂起泡泡
浏览 540回答 3
3回答

冉冉说

您需要切换到正确的iframe-它们在Java中都具有不同的ID(或其他一些代码),看起来像这样(对于某些随机iframe ID)driver.switchTo().frame(driver.findElementById("defaultdestFB2-1"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python