我知道當(dāng)我想單擊其中的元素時(shí)必須切換到 iframe。iFrame 的開(kāi)頭如下所示:<iframe src="about:blank" name="tool_content" id="tool_content" class="tool_launch" allowfullscreen="allowfullscreen" webkitallowfullscreen="true" mozallowfullscreen="true" tabindex="0" title="Tool Content" style="height: 100%; width: 100%;" allow="geolocation *; microphone *; camera *; midi *; encrypted-media *; autoplay *" data-lti-launch="true"></iframe>我切換到它使用driver.switch_to.frame(driver.find_element_by_class_name("tool_launch"))然后,我嘗試使用確切的 xpath 單擊 Iframe 內(nèi)的“加入”按鈕:driver.find_element_by_xpath("/html/body/div[1]/div/div/div[2]/div/div/div[3]/div[1]/div[2]/div/div/div/div/div/div/div/div/div/div/table/tbody/tr/td[4]/div/div[1]/a").click()但它一直說(shuō)它不存在。為什么?該框架內(nèi)沒(méi)有其他 iframe,并且此 xpath完全 100%在 iframe 內(nèi)。它可以識(shí)別其他元素,為什么這個(gè)不能呢?這是加入按鈕元素行:<a target="_blank" href="/lti/rich/j/96494344321?oauth_consumer_key=AAPUZMZcQCSN85nnG74vOQ&lti_scid=ee49a632bee823b3046456c29c5eb4064ee1e3790f433af82bebaf2752bde531" class="ant-btn ant-table-span" style=""> Join</a>iframe 如下所示 - 我想單擊加入按鈕:它在一張桌子里面。我可以選擇“以前的會(huì)議”選項(xiàng)卡等內(nèi)容,但無(wú)法使用“加入”或“邀請(qǐng)”按鈕。這是完整的 HTML我無(wú)法粘貼它,因?yàn)檫@只能在檢查元素中查看(查看源代碼時(shí),您看不到所有這些),并且我一次只能復(fù)制一個(gè)元素。我在頂部突出顯示了 iframe 的起始位置以及我要單擊的“加入”按鈕的位置。這兩個(gè)圖像只是一個(gè)接一個(gè)地延續(xù)。
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
嘗試等待并單擊該元素。盡量不要使用xpath。
elem=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.ant-btn.ant-table-span")))
elem.click()
進(jìn)口
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
添加回答
舉報(bào)
0/150
提交
取消