2017-12-19 24 views
0

웹 페이지의 목록 상자에있는 항목의 수를 계산하고이 목록 상자에서 여러 항목을 선택하려고합니다. 목록 상자의 항목 수를 계산하는 방법을 찾기 위해 고심하고있는 항목을 선택할 수 있습니다.Python Selenium - 목록 상자의 항목 수를 계산하십시오.

코드 참조 :

accountListBox = Select(driver.find_element_by_id("ctl00_MainContent_accountItemsListBox")) 
accountListBox.select_by_index(0) 

print(len(accountListBox)) 

내가 오류가 발생 LEN()를 사용하여 시도 ...

from selenium import webdriver 
from selenium.webdriver.support.ui import Select 

... "형식 오류는 '선택'유형의 객체는 더이 없습니다 len() ".

나는 또한 accountListBox.size()를 시도했으며 3 행에서도 '선택'을 제거했으며이 또한 작동하지 않습니다.

매우 새롭기 때문에 의견을 보내 주시면 감사하겠습니다.

감사합니다.

답변

1

docs에 따르면 Select 요소의 옵션 목록은 select.options이라고 할 수 있습니다. 특정 경우이 accountListBox.options 것, 당신은 len()를 호출 할 필요가 아닌 Select 인스턴스 자체에 : 당신은 단지 현재 선택된 옵션의 목록을 인쇄하려면,

print(len(accountListBox.options)) 

또는 :

print(len(accountListBox.all_selected_options)) 
+0

이것은 OP를 못 가게합니다. – DebanjanB

+0

감사합니다. –

0

각 목록 상자의 항목에 대한 공통 선택기를 사용하여 모든 항목을 찾고, 발견 된 요소를 변수에 저장하고, 원시 파이썬 라이브러리를 사용하여 개수를 계산하여 find_elements을 사용해야합니다.

0

나는 보통 Beautiful Soup과 함께 Selenium을 사용합니다. Beautiful Soup은 HTML 및 XML 문서를 구문 분석하기위한 Python 패키지입니다.

from bs4 import BeautifulSoup 
from selenium import webdriver 

driver = webdriver.PhantomJS() # or webdriver.Firefox() 
driver.get('http://some-website.com/some-page/') 

html = driver.page_source.encode('utf-8') 
b = BeautifulSoup(html, 'lxml') 
items = b.find_all('p', attrs={'id':'ctl00_MainContent_accountItemsListBox'}) 
print(len(items)) 

내가 찾으려는 DOM 요소가 단락 (p 태그)이라고 가정하지만, : 아름다운 수프와

당신은 다음과 같은 방법으로 목록 상자에있는 항목의 수를 얻을 수 있습니다 이것을 찾을 필요가있는 요소로 대체 ​​할 수 있습니다.