Also ich versuche, einen Rahmen mit Selen auszuwählen. Ich habe viele Beispiele und ähnliche Fragen zu stackoverflow diesbezüglich gefunden.Wählen Sie mit Selen einen Rahmen
Alle von ihnen darauf hingewiesen, dass zum Auswählen von Elementen, die in einem Rahmen sind, Sie zuerst zu diesem Rahmen "bewegen" müssen und dann das gewünschte Element erhalten. Aber ich kann nicht scheinen, den Rahmen zu bekommen, den ich will.
die Post las ich sagte Jegliche Nutzung:
driver.switch_to.frame("contentfrm") # Fetch by name, or
driver.switch_to.frame(1) # Fetch by index
So versucht ich sie alle und egal, was ich verwende ich immer eine Fehlermeldung erhalten, die besagt, es nicht den Rahmen, selenium.common.exceptions.NoSuchFrameException: Message: Unable to locate frame: contentfrm
finden
Die python-Code:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://10.0.0.2/html/content1.asp")
driver.get("10.0.0.2")
elem = driver.find_element_by_name("Username")
elem.send_keys("admin")
elem = driver.find_element_by_name("Password")
elem.send_keys("admin2")
elem.send_keys(Keys.ENTER)
# ----
driver.switch_to.default_content()
driver.switch_to.frame("contentfrm")
# elem = driver.find_element_by_id("m8")
# driver.quit()
Der HTML-Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Quick Start</title>
</head>
<frameset onload="load()" rows="0,*" frameborder="0" border="0" framespacing="0">
<frame name="topFrame" scrolling="no" src="../main/refresh.asp" __idm_frm__="200"></frame>
<frame name="contentfrm" id="contentfrm" __idm_frm__="201"></frame>
</frameset>
</html>
Hinweis: Der Code funktioniert korrekt bis zu dem Punkt, wo ich den Rahmen auswählen muss.
Jede Idee, warum diese
dieser Rahmen hat keinen Inhalt Sind Sie sicher, dass Sie nicht den 'topFrame' wollen? –
@Rafael Es hat tatsächlich Inhalt. Ich habe es einfach nicht aufgenommen, sonst würde es viel Code geben. Aber das Element, das ich suche, ist in diesem Frame – jovaee
zu finden versuchen, Standard Inhalt vor 'switch' Anweisung zu löschen und auch etwas warten, bis das Element ' '' driver.switch_to.frame ("contentfrm"); WebDriverWait wait = neuer WebDriverWait (Treiber, 15); wait.until (ExpectedConditions.elementToBeClickable (By.cssSelector (""))); '' ' –