我要查找的image
在一个网页标签。 该应用程序包含一个视图图标。 在考察视图图标,它被编码为image
标记。 我不知道如何找到特定的标签。
以下是图像标记我想找到:
<svg width="1em" height="1em" class="user-dropdown-icon" viewBox="0 0 14 8">
<image data-name="Vector Smart Object copy 3" width="14" height="8" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAAx0lEQVQYlY2Pv2oCAQyHP//s9waZfIF7j+PG3nbDFQfB7ufaxV3c3BxcFaRduzj5GL/Z5Tr0j1AoKZGeoGggEJLvI0mnqqoDsDCzCXeEpCkw7AJroJb0fEsLpnanl6bpKzAAxk3TfCdJsrsiueDiCnjsmtkPUAIbYCrp6YLkPT/RmdIdP5WQC2ALzCSNWpLXs5gVwdI/AWZ2lOTyCzCX9B6jOfAGPDhz4v82tuRPIAP8z2Wk15mZfbXZMzHkDyAH9pF59P4D+AX710oK5f6gzQAAAABJRU5ErkJggg=="></image>
</svg>
我试着用下面的XPath:
xpath="(//*[@class='user-view-icon'])[11]")
但它没有发挥出来
我想找到视图图标
尝试这个:
硒 - Java的
/*get element by tag name*/
WebElement image = driver.findElement(By.tagName("image"));
如果有页面,使用一个以上的图像
/*get all elements by tag name*/
List<WebElement> images = driver.findElements(By.tagName("image"));
从上面的列表确定你想使用哪一个(提示:使用foreach循环遍历)
<image>
所述<image>
SVG元素包括SVG文档内的图像。 它可以显示光栅图像文件或其他SVG文件。
唯一的图像格式SVG软件必须支持是JPEG , PNG等SVG文件。 动画GIF行为是不确定的。
与所显示的SVG文件<image>
被视为图像:外部资源没有被加载, :访问样式不应用 ,并且它们不能是交互式的。 以包括动态SVG元素,尝试<use>
与外部URL。 包括SVG文件,并在其内部运行的脚本,尝试<object>
里面的<foreignObject>
注 :HTML规范定义为在解析HTML的代名词。 这种特定的元素,其行为只适用于内部SVG文件或内联SVG。
这个用例
作为<image>
元素是SVG元素,以便找到你必须明确地指定这样的元件SVG命名空间使用访问元素时的xpath如下:
参考
你可以找到一对情侣在相关的详细讨论:
- 如何通过硒的Python访问“矩形”类型的元素
- 如何点击使用XPath和硒的webdriver通过Java SVG元素
- 无法找到通过的xpath剑道UI图表上的SVG元素
你像没有分配“用户视图图标” CSS类和XPath不起作用。
你可以这样做:
WebElement image = driver.findElement(By.cssSelector("svg.user-dropdown-icon > image"));
能否请您执行下面的代码,让我知道你会得到什么。 的System.out.println(driver.findElements(By.tagName(“图像”))尺寸());
如果你仍然得到空指针异常,有什么不对您的驱动程序对象。 此代码应在该网页上返回0,如果没有图像标签页上,图像标签的其他数
根据图像标签的数量,你可以决定你要点击图片标签的索引,然后该元素上执行点击