Ich kann erfolgreich mit dem Selenium-Web-Treiber anmelden, aber ich weiß nicht, wie Sie auf den Rahmen auf der nächsten Seite zugreifen. Ich habe versucht, den neuen Rahmen zu setzen, aber es findet dieses Element nicht, weil ich denke, dass es durch die Elemente auf der Anmeldeseite anstatt der Seite danach schaut. Dies ist die URL, nachdem die Anmeldung erfolgreich war. https://homeaccess.katyisd.org/HomeAccess/Classes/Classwork
Wie auf Elemente der Seite nach dem Login selen zugreifen?
Path of frame on page AFTER login page
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = "https://homeaccess.katyisd.org/HomeAccess/Account/LogOn?ReturnUrl=%2fHomeAccess"
browser.get(url)
browser.find_element_by_id('LogOnDetails_UserName')
browser.find_element_by_id('LogOnDetails_Password')
browser.find_element_by_id('LogOnDetails_UserName').clear()
browser.find_element_by_id('LogOnDetails_Password').clear()
browser.find_element_by_id('LogOnDetails_UserName').send_keys('******')
browser.find_element_by_id('LogOnDetails_Password').send_keys('******')
Das ist alles auf der Seite nach dem Login
frame = browser.find_element_by_xpath('//*[@id="sg-legacy-iframe"]') //prints no such element found
browser.switch_to_frame(frame)
browser.find_element_by_xpath('//*[@id="SignInSectionContainer"]/div[2]/button').click()
ich einen Fehler http bin immer: // puu. sh/oHUyF/81e555063f.png. Aber dieses Mal ist es kein solcher Fehler! – johnson
Versuchen Sie immer noch, zum Rahmen zu wechseln? (zB 'browser.switch_to_frame (frame)') Sie müssen nicht, wie der Name schon sagt, "frame_to_be_available_and_switch_to_it" bereits tun, siehe https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium .webdriver.support.expected_conditions.html: "Es wird erwartet, dass überprüft wird, ob der angegebene Frame verfügbar ist. Wenn der Frame verfügbar ist, wird der angegebene Treiber auf den angegebenen Frame gesetzt." –