📅  最后修改于: 2023-12-03 14:47:22.238000             🧑  作者: Mango
在Selenium中,有许多种方法从网页中定位元素。其中之一是使用CSS选择器。CSS选择器可以根据元素的属性、标记名和层级关系来选择元素。
有时,在寻找元素时并不知道其完整属性值。在这种情况下,可以使用子字符串匹配选取元素。这种技术可以选择属性值中包含特定字符串的元素。
要选择包含子字符串的元素,可以使用属性包含选择器(*=)。例如,如果要选择一个<div>
元素,其class
属性中包含menu
的值,则可以使用以下代码:
element = driver.find_element_by_css_selector('div[class*=menu]')
上述代码中,*=
指示选择器中包含menu
子字符串的所有元素。
要选择以特定子字符串开头的元素,可以使用属性前缀选择器(^=)。例如,如果要选择href
属性以https
开头的<a>
元素,则可以使用以下代码:
element = driver.find_element_by_css_selector('a[href^="https"]')
上述代码中,^=
指示选择器只选择以https
开头的元素。
要选择以特定子字符串结尾的元素,可以使用属性后缀选择器($=)。例如,如果要选择以.pdf
文件扩展名结尾的<a>
元素,则可以使用以下代码:
element = driver.find_element_by_css_selector('a[href$=".pdf"]')
上述代码中,$=
指示选择器只选择以.pdf
结尾的元素。
要选择包含特定值的子字符串的元素,可以使用属性匹配选择器(|=)。例如,如果要选择class
属性包含单词header
的元素,则可以使用以下代码:
element = driver.find_element_by_css_selector('[class|=header]')
上述代码中,|=
指示选择器只选择class
属性以header
开头的元素。
使用子字符串匹配选择器时要小心,因为它们可能会返回多个匹配项。确保尽可能具体地指定您的选择器,以免选择错误的元素。
子字符串匹配是一种有用的技术,可以让您选择不知道完整属性值的元素。在Selenium Webdriver中,CSS选择器是很好的方法来定位元素。使用属性包含、前缀、后缀和匹配选择器时请小心,并尽可能具体地指定您的选择器。