0

我用 cssselector 替换了定位器 tagName 而没有更改参数,并且代码仍然可以正常工作。之前的脚本是:

Driver.findElement(By.tagName("*enter tagName*");

替换代码为:

Driver.findElement(By.cssSelector("*enter tagName*");

尽管我没有使用任何 cssSelector 组合,但代码仍然有效。

这怎么可能?

4

2 回答 2

0

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");

是等效的。

于 2022-02-13T23:50:14.163 回答
0

这可以正常工作,因为标签名称本身就是一个正确的 CSS 选择器。
通常 CSS 选择器可能如下所示:tagName[attributeName='attributeValue']您可以在其中省略属性名称和值,并仅根据其定位元素tagName。所以tagName孤独仍然是一个正确的 CSS 选择器。

于 2022-02-13T07:28:38.480 回答