当前位置: 首页 > 知识库问答 >
问题:

Selenium:没有绝对路径时如何点击href链接

关飞翼
2023-03-14

我正在尝试识别CQ5网页中的链接并单击它。

以下是html代码:

<a href="/siteadmin" title="Websites"> 
 <div class="icon siteadmin"> 
<div class="title">Websites</div> 
 <div class="description">Create and manage multiple websites.
 </div> 
</div> 
</a>

以下是我试图找到信息并单击它的方法

driver.findElement(By.linkText("Websites")).click();
driver.findElement(By.xpath("//a[@href='/siteadmin']")).click();

正在获取以下异常:

线程“main”org.openqa.selenium.WebDriverException中的异常:未知错误:元素在点(528,174)不可单击。其他元素将收到单击:


共有2个答案

杨凌
2023-03-14

您需要检查attr是否包含字符串,因为它返回完整路径,即使在HTML中只显示< code>/siteadmin。

XPath解决方案:

//a[contains(@href, '/siteadmin') and @title='Websites']

Css 选择器解决方案:

a[href*='/siteadmin'][title='Websites']
周兴朝
2023-03-14
匿名用户

在这种情况下,您应该尝试使用< code>JavascriptExecutor来执行单击操作,如下所示

((JavascriptExecutor)driver).executeScript("arguments[0].click()", driver.findElement(By.cssSelector("a[href = '/siteadmin'][title = 'Websites']")));

 类似资料:
  • 我想按附上的图片点击href链接,我试过下面的代码,但似乎不起作用。请帮帮我. ..... driver.findElement(by.xpath(“//a[@href='careers']”)).click(); ............ 下面是Div标记的HTML内容................. null ........................

  • 我有一个html链接

  • 问题内容: 我正在FireFox中使用Selenium的IDE进行一些测试,我希望Selenium单击第二个链接(Text2)。知道我该怎么做吗?不幸的是,我无权访问HTML并且无法对其进行修改。记录功能似乎没有注册点击。 该代码附在下面。提前致谢! 问题答案: 硒也支持定位器。如果您知道确切的链接文本,则可以使用此定位器,但不能使用其他定位器。因此,对于上述示例:或。(有关其他定位器,请参见此网

  • 我有一个目录如下所示: 我希望我的文件需要。现在我正在使用,但这不起作用。我做错了什么?我希望避免使用。

  • 问题内容: 我在网络应用程序中生成普通链接,例如: 当我单击链接时,它将在新页面中显示图片。如果要保存图片,则需要右键单击它并选择“另存为” 我不希望这种行为,我想在单击链接时弹出一个下载框,这可能仅适用于html或javascript吗?怎么样? 如果不是,我想我将不得不编写一个download.php脚本,并以文件名作为参数将其调用到href中…? 问题答案:

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置