15、技巧之八: 如何确认WebDriver支持哪个版本的Xpath?【Selenium+Python3网页自动化总结】

时间:2024-03-11 10:42:47

Firefox目前支持XPath 1.0版本,目前没有计划支持XPath 2.0版本。

曾经想知道给定的WebDriver支持哪个版本的XPath吗?我们当然希望是2.0或3.0版本,但最可能的版本是1.0。正如Selenium维基所述,WebDriver在可能的情况下使用浏览器的原生XPath功能。当浏览器不支持XPath时(比如IE 6/7/8),Selenium会提供自己的实现,支持XPath 1.0版本。

可以用以下代码试出来,判断是否支持3.0独有的方式,或者2.0独有的方式:


 

from selenium.webdriver.common.by import By


def get_xpath_version(context):

    try:

        context.find_element(By.XPATH, "/nobody[@attr=('A'||'')]")

        return "3.0"

    except Exception as e:

        try:

            context.find_element(By.XPATH, "/nobody[@attr=lower-case('A')]")

            return "2.0"

        except Exception as e:

            return "1.0"


 

# 示例用法

# 假设 context 是 WebDriver 实例

version = get_xpath_version(context)

print(version)