Python selenium中XPath定位元素的几种方法

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}

你可能感兴趣的:(无聊解闷,python,selenium)