获取我通过 ID 或名称等获得的元素的 Xpath 字符串。Python Selenium

Get Xpath string of an element that I got by ID or name etc.. Python Selenium

我有这个元素,我想通过代码访问它的 Xpath,像 find_element(By.XPATH,[=26 这样的 Xpath 找不到元素=]) 而不是在浏览器上手动获取 xpath

today = driver.find_element(By.CLASS_NAME,'today')
day = today.get_attribute("data-day")
xpathString = today.get_xpath() # <--- this function doesn't exist

我们可以通过get_attribute()函数获取元素的属性,但是我找不到returns 元素的 Xpath 函数。

请问可以吗? 提前致谢!

此 return 元素 el 的完整 xpath,其 class 名称为 today,即 /html/.../el

xpathString = driver.execute_script("""
var el = arguments[0];
aPath ="";
while (el.tagName!='HTML'){
    parentEle=el.parentNode;
    if(parentEle.querySelectorAll(el.tagName).length>1){
        childIndex = 0;
        parentEle.querySelectorAll(el.tagName).forEach(function(cEle){
           childIndex= childIndex+1;
           if(cEle === el){
             aPath = el.tagName + "[" + childIndex + "]" + "/" +aPath;
           }
        })

    }else{
         aPath = el.tagName + "/" +aPath;
    }
    el=el.parentNode;
}
return "/html/"+aPath.substring(0,aPath.length-1).toLowerCase();
""", today)