我找不到伪注释的Xpath

时间:2019-05-20 11:42:43

标签: c# selenium

我只想知道如何获取伪元素的Xpath实际上,在这个问题中,我想在此Div上使用.CLick()作为其角色,是按钮,所以我只尝试了使用具有Div类名称的xpath进行定位元素,但未单击我必须单击此:: after但我无法获得Xpath,因为它是伪元素

<div id=":l6" class="T-I J-J5-Ji amD T-I-awG T-I-ax7 T-I-Js-Gs L3" 
              role="button" tabindex="0" 
              data-tooltip="Older" 
              aria-label="Older" 
              style="user-select: none;" 
              xpath="1">

  <span class="amF" 
        aria-hidden="true">
     &nbsp;
  </span>
  <img class="amJ T-I-J3" 
       src="images/cleardot.gif" alt="">
::after
</div>

1 个答案:

答案 0 :(得分:0)

我读过的书"The Selenium API doesn't support pseudo-elements"

因此您可以尝试使用Actions

我在这里有一个使用CssSelector的示例(我没有可以添加的完整路径):

Actions action = new Actions(Session.Driver);
action.MoveToElement(FindElement(By.CssSelector("div.img::after"))).ContextClick().Build().Perform();

作为最后的选择,您可以将JavaScript与ExecuteScript一起使用,如下所示:

var afterElem = driver.FindElement(By.CssSelector("div.img"));

var buttonAfter = driver.ExecuteScript(
    "return window.getComputedStyle(arguments[0],'::after');"
    , afterElem);
buttonAfter.click();

您将需要使用CssSelector或使用XPath。

希望这对您有帮助!