如何定位 使用Selenium和Java网页内标签(How to locate an

2019-10-29 02:32发布

我要查找的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]")

但它没有发挥出来

我想找到视图图标

Answer 1:

尝试这个:

硒 - 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循环遍历)



Answer 2:

<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如下:

  • 对于<svg>元素:

     //*[name()="svg"] 
  • 对于<g>元素:

     //*[name()="svg"]/*[name()="g"] 
  • 对于<image>元素:

     //*[name()="svg"]/*[name()="image"] 

参考

你可以找到一对情侣在相关的详细讨论:

  • 如何通过硒的Python访问“矩形”类型的元素
  • 如何点击使用XPath和硒的webdriver通过Java SVG元素
  • 无法找到通过的xpath剑道UI图表上的SVG元素


Answer 3:

你像没有分配“用户视图图标” CSS类和XPath不起作用。

你可以这样做:

WebElement image = driver.findElement(By.cssSelector("svg.user-dropdown-icon > image"));


Answer 4:

能否请您执行下面的代码,让我知道你会得到什么。 的System.out.println(driver.findElements(By.tagName(“图像”))尺寸());

如果你仍然得到空指针异常,有什么不对您的驱动程序对象。 此代码应在该网页上返回0,如果没有图像标签页上,图像标签的其他数

根据图像标签的数量,你可以决定你要点击图片标签的索引,然后该元素上执行点击



文章来源: How to locate an tag within a webpage using Selenium and Java