アコーディオンスタイルでコンテンツを表示するためにクリックできるdivのブロックがあります。
私はセレンでこのブロックを実行してそれらをすべて開き、最終的にスクリーンショットをキャプチャします。ただし、次のアイテムに進む前に、アコーディオンアイテムが表示されていることを確認する最善の方法がわかりません。
現時点ではテストは実行されていますが、最終的なスクリーンショットには、いくつかのアイテムがまだ閉じられていることが示されています。私のコード:
detailsAccordion = self.ff.find_elements_by_class_name('accordion')
index = 1
for option in detailsAccordion:
try:
WebDriverWait(self.ff, 10).until(lambda driver : driver.find_element_by_xpath("//div[@class='accordionContainer']/div["+
str(index) +"]/h3[1]")).click()
# Need a WebDriverWait here for style='display: block;' on the current div
except:
print "Can't access div #" + unicode(index)
index = index + 1
次のような行を追加すると、
WebDriverWait(self.ff, 10).until(lambda driver : driver.find_element("//div[@class='accordionContainer']/div["+
str(index) +"][@style='display: block;']"))
例外が出力されるので、各divのdisplayプロパティに要件を追加することはできますか?