我只想知道如何获取伪元素的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">
</span>
<img class="amJ T-I-J3"
src="images/cleardot.gif" alt="">
::after
</div>
答案 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。
希望这对您有帮助!