1、获取元素文本返回值为空的代码
def askfor_leave_list_reason_perc(self):
sleep(1)
self.switch_iframe(AFLL.AskforLeave_list_iframe[0], doc="请假列表iframe")
Table_tbody = "//div[@id='table_635d6db0595d11ebbecee70b85d7da5f']//div[@class='el-table__fixed']//tbody"
element = self.driver.find_element_by_xpath(Table_tbody)
table_tr_list = element.find_elements_by_tag_name("tr")
total_numbers = len(table_tr_list)
print("列表总数据:{}".format(total_numbers))
sleep(1)
table_list = []
for i in range(total_numbers):
table_td_list = self.driver.find_elements_by_xpath('//div[@id="table_635d6db0595d11ebbecee70b85d7da5f"]//div[@class="el-table__fixed"]'
'//tbody//tr[' + str(i + 1) + ']//td[4]')[0]
table_td_list1 = table_td_list.text
table_list.append(table_td_list1)
self.driver.switch_to.default_content()
Real_Len = len(table_list)
print("当前页实际获取到的数据条数:{}".format(Real_Len))
return table_list
2、结果显示如下:
3、查找问题点:元素内容获取为空的几种可能情况(元素是否可见)
table_td_list2 = table_td_list.is_displayed()
返回值都显示为False,所以判断获取的元素不可见,则值显示为空。
4、查阅资料,找到从隐藏元素获取文本内容的方法:通过获取属性来获取
element.attribute('innerHTML') #会返回元素的内部HTML;
element.attribute('textContent ') #返回元素的文本内容;
element.attribute('innerText ') #返回元素的文本内容;
textContent 是 W3C 兼容的文字内容属性
table_td_list1 = table_td_list.get_attribute('textContent')
5、获取元素内容后优化
new_table_list = [x.strip() for x in table_list if x.strip() != '']
6、优化完整代码:
def askfor_leave_list_reason_perc(self):
sleep(1)
self.switch_iframe(AFLL.AskforLeave_list_iframe[0], doc="请假列表iframe")
Table_tbody = "//div[@id='table_635d6db0595d11ebbecee70b85d7da5f']//div[@class='el-table__fixed']//tbody"
element = self.driver.find_element_by_xpath(Table_tbody)
table_tr_list = element.find_elements_by_tag_name("tr")
total_numbers = len(table_tr_list)
print("列表总数据:{}".format(total_numbers))
sleep(1)
table_list = []
for i in range(total_numbers):
table_td_list = self.driver.find_elements_by_xpath('//div[@id="table_635d6db0595d11ebbecee70b85d7da5f"]//div[@class="el-table__fixed"]'
'//tbody//tr[' + str(i + 1) + ']//td[4]')[0]
table_td_list1 = table_td_list.get_attribute('textContent')
table_td_list2 = table_td_list.is_displayed()
print(table_td_list2)
table_list.append(table_td_list1)
self.driver.switch_to.default_content()
new_table_list = [x.strip() for x in table_list if x.strip() != '']
Real_Len = len(new_table_list)
print("当前页实际获取到的数据条数:{}".format(Real_Len))
return new_table_list
7、优化后效果显示
版权声明:本文为yutian8233原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。