2017-12-19 9 views
0

内の項目数をカウントします。私は項目を選択することができますが、私はちょうどリストボックスの項目を数える方法を見つけるのに苦労しています。何を持っている 'を選択します' タイプのオブジェクトを:私はエラー」TypeError例外になりLEN()を使用して試してみましたPythonのセレン - 私は、Webページ上のリストボックス内の項目の数をカウントして、このリストボックスから複数の項目を選択しようとしているリストボックス

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

... ...

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

print(len(accountListBox)) 

は、コードを見ていませんlen() "

私も(accountListBox.sizeを試してみました)もまた、動作しないライン3から「選択」を削除しました。

これはかなり新しいので、あなたのフィードバックをいただければ幸いです。

ありがとうございます!

答えて

1

select.optionsを言うことによって得ることができます。あなたの特定のケースでは、これはaccountListBox.optionsだろう、とあなたはそのlen()を呼び出す必要はなく、Selectインスタンス自体に:あなたが唯一の現在選択されているオプションのリストを印刷したい場合は、

print(len(accountListBox.options)) 

または:

print(len(accountListBox.all_selected_options)) 
+0

これは、OPを釘付けにする必要があります。 – DebanjanB

+0

私はこれについて十分にあなたに感謝することはできません。 –

0

各リストボックスの項目に共通のセレクタを使用して、すべての項目を検索し、見つかった要素を変数に格納し、ネイティブのPythonのライブラリを使用してカウントすることで、find_elementsを使用する必要があります。選択要素のオプションのdocsリストによると

0

私は通常、美しいスープと一緒にセレンを使用します。 Beautiful Soupは、HTMLとXMLドキュメントを解析するためのPythonパッケージです。私はあなたが検索したいDOM要素は、段落(pタグ)ですが、あなたと仮定

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)) 

:あなたは次のようにリストボックス内の項目の数を取得することができます美しいスープ

これを置き換える必要がある要素に置き換えることができます。

関連する問題