在做自動化時,經常會遇到一些查詢,篩選的業務。需要將我們的搜索條件和查詢結果去比較,
但是Selenium WebDriver 只會與可見元素交互,所以獲取隱藏元素的文本總是會返回空字符串,導致如果結果數據量大的話校驗會不通過,如下
上圖查詢篩選結果有31條,但是頁面可見文本只能顯示16條,不可見的文本日志信息為空
嘗試使用滾動條下滑到下面,但是日志前幾條文本信息又為空
后面改使用JS獲取文本,成功得到所有文本,代碼如下
def get_conceal_text(self, selector): """獲取一組元素文本,包含隱藏元素""" ele = self.find_elements(selector) textlist = [] js = "return arguments[0].textContent" for i in ele: # text = i.get_attribute('textContent') 效果相同 text = self.driver.execute_script(js, i) textlist.append(text) return textlist #補充說明 ele:定位一組元素