我用cssselector替换了定位器tagName,但没有更改参数,代码仍然运行良好。以前的脚本是:
Driver.findElement(By.tagName("*enter tagName*");
更换代码为:
Driver.findElement(By.cssSelector("*enter tagName*");
尽管我没有使用任何cssSelector组合,但代码仍然有效。
这怎么可能?
由于标记名本身就是一个正确的CSS选择器,因此这一操作正确
CSS Selector通常如下所示:tagName[attributeName='attributeValue']
,其中可以省略属性名称和值,并仅基于tagName
定位元素。所以tagName
lonely仍然是一个正确的CSS选择器。
By.TAG_NAME
总是等价于By.CSS_SELECTOR
根据find_element((的定义:
elif by == By.TAG_NAME:
by = By.CSS_SELECTOR
因此,前一行代码:
Driver.findElement(By.tagName("enter tagName");
以及替换代码行:
Driver.findElement(By.cssSelector("enter tagName");
相当。