我如何运行与硒的iframe的下一页上的按钮?



前瞻问题是否有硒不起作用的地方?

driver.get("https://sugang.gwnu.ac.kr/")
wait = WebDriverWait(driver, 10)
time.sleep(2)
driver.switch_to.frame("Main")
# wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//*[@id="Main"]')))
wait.until(EC.element_to_be_clickable((By.ID, "id"))).send_keys('my id')
wait.until(EC.element_to_be_clickable((By.ID, "pwd"))).send_keys('my pwd')
wait.until(EC.element_to_be_clickable((By.ID, "btn_login"))).click()

到目前为止,它工作正常。(id和pwd是我的个人信息,所以我删除了)

# time.sleep(2)
# driver.switch_to.frame("Main")
wait.until(EC.element_to_be_clickable((By.ID, "menu_sugang"))).click()

它变成了一个新的窗口,没有从这里工作。iframe仍然是'Main'.

<iframe name="Main" id="Main" style="position: absolute; width:100%; height:100%; border: none;" scrolling="auto"></iframe>

<li onclick="fnLoad('/sugangattribute=sugangMain',this.id);"id="menu_sugang">
<imgsrc="/resources/img/layout/icon-registration.png">
<span>수강신청</span>
</li>

我试着点击上面的html语法,但它不起作用。

我读了一本自动化的书,但是真的很难,因为这些信息甚至都没有在书中。也有谷歌搜索,但有一个限制的术语问题。起初,我甚至不知道框架的存在。这里有很多好老师,但我想知道自己学习的材料或方法。

还有一个框架,

<frame src="/core?attribute=coreMain&amp;fake=1629787283080" name="coreMain" id="coreMain">

所以你需要再次切换,如下所示:

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(50)
driver.get("https://sugang.gwnu.ac.kr/")
wait = WebDriverWait(driver, 50)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "Main")))
wait.until(EC.element_to_be_clickable((By.ID, "id"))).send_keys('****')
wait.until(EC.element_to_be_clickable((By.ID, "pwd"))).send_keys('****')
wait.until(EC.element_to_be_clickable((By.ID, "btn_login"))).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "coreMain")))
wait.until(EC.element_to_be_clickable((By.ID, "menu_sugang"))).click()
print('Operation done !')

你可以使用javascript来执行点击。

driver.execute_script("document.getElementsByTagName('iframe')[0].click()")

使用正确的类名和标签名来定位正确的元素。

最新更新