回顧下小本年用selenium饲握, python 做automation的小結(jié)吧私杜。
都是些小點點。
- 通過獲取父類的text值來得到其子類的text值:parent_ele.text 要注意如果某個子元素的text值為空救欧, 獲取到的text字符串值不會為空的子元素保留值占位符衰粹。
如下面所示,tr下面總共有三個td笆怠,應(yīng)該獲得三個td的值铝耻,但是假設(shè)第二個td的值為空,那么總共得到的text值長度為二蹬刷。 所以如果想使用這種方法獲取每個td的值的時候要小心瓢捉。
舉例:
如下所示频丘,
print context = row_element.text
print(len(context.split('\n')))
Console:
11233\n1 day\n
2
java
code:
<tbody>
<tr>
<td><b>11322</b> </td>
<td></div></div> </td>
<td><div><div>1 day</div></div></td>
</tr>
</tbody>
- 隱藏的元素,雖然是exists的泡态,但是通過text得到的值為空搂漠。
- 使用selenium 獲取的元素的text都是字符串,所以在比較期望的值的時候兽赁,注意值的數(shù)據(jù)類型状答。
- 總結(jié)一些定位元素的知識
若遇到測試對象很多都是用的動態(tài)id或者class,或者沒有唯一屬性可以定位刀崖,會為automation帶來困難惊科。 所以要學(xué)會通過兄弟找到自己或者通過父親找到自己等一些技巧。
starts-with ,查找指定屬性前綴的元素
xpath='//*[starts-with(@id,"reservation")]'
通過父類元素獲得子元素 ./
name_xpath = './td[1]'
parent.getElementByXpath(name_xpath)
多個屬性來定位元素
xpath='//*[starts-with(@id,"vcacPagingToolbar") and @class="x-box-inner"]/div/div[last()]/../a[3]'
../查找當(dāng)前元素上級亮钦,有兄弟或者子孫定位元素
delete_detail_hidden = '//table[@aria-hidden="true"]//*[text()="Cannot delete reservation policy:"]/../../../tr[2]/td/div'
xpath的謂語
/bookstore/book[last()] 選取屬于 bookstore 子元素的最后一個 book 元素馆截。
/bookstore/book[last()-1] 選取屬于 bookstore 子元素的倒數(shù)第二個 book 元素。
/bookstore/book[position()<3] 選取最前面的兩個屬于 bookstore 元素的子元素的 book 元素蜂莉。
未完待續(xù)蜡娶。。映穗。窖张。