학교 URL에 연결하고 셀렌으로 프로세스를 자동화하려고합니다. 원래는 splinter를 사용해 보았지만 비슷한 문제가 발생했습니다. 사용자 이름과 암호 필드와 상호 작용할 수없는 것 같습니다. 나는 그것이 상호 작용할 필요가있는 iframe이라는 점에서 약간의 방법을 깨달았다. 현재 내가 가지고웹 사이트 양식과의 상호 작용
웹 싸이트 : 여기
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("https://my.oregonstate.edu/webapps/login/")
driver.switch_to.frame('Content') #I tried contentFrame and content as well
loginid = driver.find_elements_by_id('user_id')
loginid.send_keys("***")
passwd = driver.find_elements_by_id('password')
passwd.send_keys("***")
sub = driver.find_elements_by_id('login')
sub.click()
time.sleep(5)
driver.close()
내가와 상호 작용하는 것을 시도하고있는 HTML이다
https://my.oregonstate.edu/webapps/portal/frameset.jsp
iframe이 :
<iframe id="contentFrame" style="height: 593px;" name="content" title="Content" src="/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_1_1" frameborder="0"></iframe>
폼 :
아이디 :
,210<input name="user_id" id="user_id" size="25" maxlength="50" type="text">
비밀번호 :
<input size="25" name="password" id="password" autocomplete="off" type="password">
그것은 요소를 찾을 수 셀레늄 그냥 찾을 것 같다,하지만 난 입력이 필드에 정보 드릴 수 없습니다, 나는 오류 '목록 객체가 어떤 속성이없는'얻었다. 그것이 iframe이라는 것을 깨달았을 때 나는 그것을 탐색하려고 시도했지만 '프레임을 찾을 수 없습니다 : Content'라고 말합니다. 내가 놓친 다른 iframe이 있습니까? 아니면 확실한 무엇인가? 여기가 처음으로 링크 된 코드로 무언가를 엉망으로 만들면 유감스럽게 생각합니다.
도움 주셔서 감사합니다.
당신이 바로 발견 요소에 있었다. 그러나 내 문제는 iframe과 함께 유지됩니다. ID 나 이름이 무엇이든간에 내가 사용하는 것과 상관없이 여전히 연결할 수 없습니다. 탐색 바에 다른 iframe이 있음을 확인했습니다. 하지만 그 첫 번째 권리에 연결할 필요가 없어야합니까? 그들은 html에서 분리되어 있습니다. 의견 있으십니까? – KJS
@KJS : 위의 코드를 테스트했습니다. 어떤 환경을 사용하고 있습니까? Python 2.7.5, Selenium 2.42.1, Firefox 24.6.0 ESR이 있습니다. Chrome으로 시도해보십시오. 작동하는 경우 코드가 아닌 Firefox 문제 여야합니다. –
글쎄, 다른 URL을 사용하여 연결하고있다. 나는 그것도 코드라고 생각하지 않았지만 이상하게도 아마 웹 사이트 일 것입니다.현재 웹 사이트 : https://my.oregonstate.edu/webapps/login/?action=relogin 을 사용하고 있는데 입력란에는 입력 할 수 있지만 제출 버튼은 선택할 수 없습니다. find_element_by_class_name ('제출 버튼 -1')을 사용하고 있는데 '지정된 선택 제출 버튼 -1이 잘못되었거나 web 요소가 발생하지 않습니다.'라는 오류가 발생합니다. 이견있는 사람? – KJS