1、元素中包含某一信息时,使用contains:
ele = '//strong[contains(text(), "测试信息")]' # tagName为strong的innerText中包含‘测试信息’
2、要获取的元素内容不唯一,但是能确定有多种情况时使用or:
ele='//*[(text()="内容1") or (text()="内容2") or (text()="内容3")]' #不确定tagName使用*,内容包含‘内容1’、‘内容2’、‘内容3’
ele = "//input[@id='内容1' or @name='内容2']"
3、元素有唯一确定内容时:
ele='//span[text()="内容1"]'
4、元素存在内容不唯一,确定的内容不连续时:
ele='//span[text()="内容1" and text()="内容2"]' #tagName为span的元素,id属性是内容1,name属性是内容2
5、元素需要多个特征才能确定时:
ele = "//span[@id='内容1' and @name='内容2']" #tagName为span的元素,id属性是内容1,name属性是内容2
6、元素某一项确定,但需要有条件的排除其中部分内容时:
ele = "//span[@value='内容1' and not(contains(@name,'内容2'))]" #tagName为span的元素,value属性是内容1,但是排除name中包含内容2的元素
7、元素的标签以某内容开始或结束:
ele = "//span[starts-with(@name,'内容')]" #tagName为span的元素,name属性以内容开头
ele = "//span[ends-with(@name,'内容')]"
8、元素的父元素:
ele = "//span[contains(text(), 'test')]/parent::span"
9、元素的兄弟元素:
ele = "//span[contains(text(), 'test')]/preceding-sibling::span[1]" # 同级元素的上一个元素
ele = "//span[contains(text(), 'test')]/following-sibling::span[1]" # 同级元素的下一个元素
10、查找子元素:
ele = "//td[(text()="test1")]/parent::tr/descendant::a[(text()='test')]"
其他1、下载多个文件时,避免出现多次下载的弹窗
"prefs":{"profile.default_content_settings.popups":0,"download.default_directory":"D:\\","profile.default_content_setting_values.automatic_downloads":1}
其他2、设置下载文件路径
"prefs":{"profile.default_content_settings.popups":0,"download.default_directory":"D:\test","profile.default_content_setting_values.automatic_downloads":1}