在自动化网站的过程中,我不得不生成元素的相对xpath。
网站名称:www.magicbricks.com/forum
请访问此网站并尝试在搜索栏中找到带有文字'Sai Park'的地点。
搜索框下方的列表中显示了很多结果。现在我必须选择'Project Sai Park,Pune'。
我确实尝试像这样生成xpath:
//span[text()='Sai Park']/parent::a[text()=', Pune']
但是,只有在锚标记中的span标记之前没有文本存在时,此代码才有效。
标签的文字取决于您搜索的内容(搜索的文字将被视为跨文本)
这是标签:
<a onclick="discussionPageSearchResult('48633','Project Sai Park |Pune','PROJECTS');" id="ui-id-151" class="ui-corner-all" tabindex="-1">Project <span>Sai Park</span>, Pune</a>
请告诉我如何处理这个问题?
由于
答案 0 :(得分:3)
以下XPath表达式应该执行您想要的操作:
//a[normalize-space()="Project Sai Park, Pune"]
在规范化任何空格字符后,如果该标记内的文字等于 Project Sai Park,Pune ,则会选择a
标记。
答案 1 :(得分:0)
试试这个:
// span [text()=&#39; Sai Park&#39;] / parent :: a [contains(text(),&#39; Pune&#39;)]
答案 2 :(得分:0)
如果您使用java,请使用以下解决方案:
WebElement element = driver.findElement(By.cssSelector("a[href*='project-sai-park']"));
//scroll to that element
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
element.click();
希望这会对你有所帮助,让我知道会发生什么。