Selenium 求教:Selenium 中怎么获取伪类元素,

匿名 · 2020年07月17日 · 142 次阅读

需要对前面的 “*” 号进行断言,判断出现与否,需要怎么做?

最佳回复

感觉 Selenium 无法直接伪类元素,但是可以通过调用 JavaScript 获取其属性,具体如下:

JavascriptExecutor jse = (JavascriptExecutor) driver;
// 这里先定位到label元素
WebElement e = driver.findElement(By.cssSelector("label.el-form-item__label"));
// 这里js前一定要加return,否则结果会是null
// 如果伪类元素不存在,下面的语句会返回"none"
String content = (String) jse.executeScript("return window.getComputedStyle(arguments[0], '::before').content", e);
共收到 5 条回复 时间 点赞
匿名 #1 · 2020年07月17日

有哪位老哥教一下吗

定位 label 获取 size,移动 x,y

感觉 Selenium 无法直接伪类元素,但是可以通过调用 JavaScript 获取其属性,具体如下:

JavascriptExecutor jse = (JavascriptExecutor) driver;
// 这里先定位到label元素
WebElement e = driver.findElement(By.cssSelector("label.el-form-item__label"));
// 这里js前一定要加return,否则结果会是null
// 如果伪类元素不存在,下面的语句会返回"none"
String content = (String) jse.executeScript("return window.getComputedStyle(arguments[0], '::before').content", e);

可以通过执行 js 获取

匿名 #5 · 2020年07月23日
xinufo 回复

谢谢,按照此方法已经实现

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册