0

我正在尝试从位于网页内的嵌套 iframe 中抓取一些数据。我的最终目标是点击图片中的这个按钮:

嵌套 iframe 内的按钮

我进入了第一个 iframe,但找不到嵌套的 iframe。这是我的代码:

import openpyxl
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:.....")
driver = webdriver.Chrome(executable_path=".....\chromedriver.exe", chrome_options=options)
driver.wait = WebDriverWait(driver,15)

driver.get('https://test...com')
time.sleep(10)
driver.maximize_window()
driver.switch_to.default_content()


driver.switch_to.frame(driver.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'.oneAlohaPage'))).find_element_by_tag_name('iframe'))

之后,我使用此代码检查其他 iframe:

ids =  driver.find_elements_by_xpath('//*[@name]')
for ii in ids:
    print('tag_name1: '+str(ii.tag_name))
    print('tag_name2: '+str(ii.get_attribute('tag_name')))     
    print('name: '+str(ii.get_attribute('name'))) 
    print('id: '+str(ii.get_attribute('id')))
    print('value: '+str(ii.get_attribute('value')))
    print('innerHTML: '+str(ii.get_attribute('innerHTML')))    
    print('outerHTML: '+str(ii.get_attribute('outerHTML')))       
    print('href: '+str(ii.get_attribute('href')))       
    print('src: '+str(ii.get_attribute('src')))   

输出:

tag_name1: iframe
tag_name2: None
name: oneiframe
id: 0.5326085674477172
value: None
innerHTML: 
outerHTML: <iframe frameborder="false" src="https://sales....?v25" name="oneiframe" style="width:100%; height: 100%; position: absolute;overflow:hidden;" scrolling="false" data-aura-rendered-by="15:0" id="0.5326085674477172"></iframe>
href: None
src: https://sales....?v25

我无法进入嵌套的 iframe,最后单击此按钮。谁能帮我?

额外信息:

HTML nested iframe: <iframe frameborder="false" src="https://sales....?v25" name="oneiframe" style="width:100%; height: 100%; position: absolute;overflow:hidden;" scrolling="false" data-aura-rendered-by="15:0" id="0.5326085674477172"></iframe>

JS Path for nested iframe: document.querySelector("#\\30 \\.5326085674477172")


HTML of the button: <button type="button" class="ant-btn ant-btn-link"><span class="ant-typography"><u>Test-123</u></span></button>

JS path of the button: document.querySelector("#root > div:nth-child(2) > div > div.ant-tabs-content.ant-tabs-content-animated.ant-tabs-top-content > div.ant-tabs-tabpane.ant-tabs-tabpane-active > div.ant-row > div > div > div > div > div > div > div > div > table > tbody > tr > td:nth-child(1) > button")
4

0 回答 0