我使用的是selenium web驱动程序,我想要捕获或单击这个HTML作为
\<a class="sub-nav-link style-scope app-shell active" href="#/trend-analysis/tag-search"\>
我试过用Driver.findElement(By.xpath(//a[@href='#/trend-analysis/tag-search']")).click();
<div class="collapse navbar-collapse style-scope app-shell" id="navbarNav">
<ul class="app-nav navbar-nav mr-auto style-scope app-shell">
<li class="nav-item style-scope app-shell">
<a class="nav-link p-3 px-4 style-scope app-shell" href="/#/dashboard">Dashboard</a>
</li>
<li class="nav-item style-scope app-shell">
<a class="nav-link py-3 px-4 style-scope app-shell active" href="/#/trend-analysis/tag-search">Trend
Analysis</a>
<ul class="sub-nav d-flex flex-row flex-nowrap list-unstyled style-scope app-shell">
<li class="sub-nav-item style-scope app-shell">
<a class="sub-nav-link style-scope app-shell active" href="#/trend-analysis/tag-search">
Trend Analysis
</a>误差
Unable to locate element: {"method":"xpath","selector":"//*[@href='/#/trend-analysis/tag-search']"}我猜它没有检测到这个href,因为它隐藏在许多<a>和<class>标记下。请引导我。
新错误没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“//li@class=‘nav-item样式-作用域app-’/acontains(@href,‘#/趋势-分析/标记-搜索’)}”
用driver.findElement(By.xpath("//li[@class='nav-item style-scope app-shell']/a[contains(@href,'#/trend-analysis/tag-search')]")).click();
发布于 2020-09-24 20:56:44
实际上,在你的回答中,你没有第一个“这是问题吗?”
因为这是:
driver.findElement(By.xpath("//a[@href='#/trend-analysis/tag-search']")).click();看上去很好
如果问题是#就像下面的人那样,也许这会解决这个问题:
driver.findElement(By.xpath("//li[@class='nav-item style-scope app-shell']/a[contains(@href,'#/trend-analysis/tag-search')]")).click();希望我能帮上忙
发布于 2020-09-24 11:17:22
这可能算是NAA (不是回答),但我没有资格发表评论.你可以删除它,我不会生气的。
我每天都解析# URL's。如果您将查看下面的URL,您将看到关于在带有Selenium的堆栈溢出应答中使用#的一些信息。
注意:#在URL中的典型用途是建立一个自引用链接,这意味着URL通常指向与您当前正在查看的页面完全相同的URL,但确切地说,指向页面上的不同位置。
如果您试图使用使用URL的代码中的X-Path语句来定位使用Selenium的X-Path语句,其中包含一个#和更多的正斜杠/dirs...字符,根据本网站,Java (AJAX)正在被调用,而且可能Selenium并没有按照X-Path语句所认为的那样看待HREF。
链接站点的显著摘录:
当访问http://mywebsite.com/#/page1时,它将对传统的url http://mywebsite.com/page1执行ajax请求,获取该页面的http://mywebsite.com/page1,并将页面的内容加载到现有页面中。
长话短说:您X-Path中有一个#磅号,这意味着它是一种特殊类型的URL,可能需要特殊类型的X-Path...。(这是我实际上无法提供的答案,因为我不知道:)
https://stackoverflow.com/questions/64043795
复制相似问题