Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何获得带有动态文本的html标记,并在其中包含一个范围_Xpath_Selenium Webdriver_Tags - Fatal编程技术网

Xpath 如何获得带有动态文本的html标记,并在其中包含一个范围

Xpath 如何获得带有动态文本的html标记,并在其中包含一个范围,xpath,selenium-webdriver,tags,Xpath,Selenium Webdriver,Tags,在自动化网站时,我不得不生成元素的相对xpath 网站名称:www.magicbricks.com/forum 请访问本网站,并尝试在搜索栏中查找文本为“Sai Park”的地点 搜索框下方的列表中显示了大量结果。现在我必须选择“浦那西公园项目” 我确实尝试像这样生成xpath: //span[text()='Sai Park']/parent::a[text()=', Pune'] 但只有在锚定标记中的span标记之前没有文本时,此代码才起作用 标记的文本取决于您正在搜索的内容(搜索的文本将

在自动化网站时,我不得不生成元素的相对xpath

网站名称:
www.magicbricks.com/forum

请访问本网站,并尝试在搜索栏中查找文本为“Sai Park”的地点

搜索框下方的列表中显示了大量结果。现在我必须选择“浦那西公园项目”

我确实尝试像这样生成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>
浦那西公园项目
你能告诉我怎么处理吗


谢谢

下面的XPath表达式应该满足您的要求:

//a[normalize-space()="Project Sai Park, Pune"]

如果标记中的文本等于Project Sai Park,Pune,则在规范化任何空白字符后,它将选择
a
标记。

以下XPath表达式应满足您的要求:

//a[normalize-space()="Project Sai Park, Pune"]
如果标记中的文本等于Pune Sai Park项目,则在规范化任何空白字符后,它将选择
标记。

尝试以下操作:

//span[text()='Sai Park']/parent::a[contains(text(),'Pune')]

试试这个:


//span[text()='Sai Park']/parent::a[contains(text(),'Pune')]

如果使用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();

希望这能帮助您并让我知道发生了什么。

如果您使用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();

希望这能帮助您并让我知道发生了什么。

显示您试图解析的HTML的详细版本。请将其添加到您的问题中并正确设置格式。显示您试图解析的HTML的详细版本。西公园项目,PunePlease将其添加到您的问题中,并将其正确格式化。非常感谢Markus,您能告诉我是否有任何学习网站可以让我像您一样学习生成完美的XPath?@deepak.mr888很抱歉,但我不知道任何此类网站,但谷歌是您的朋友。我自己也开始使用O'Reilly的XSLT1.0 Pocket参考资料学习XPath和XSLT。从那以后,我主要是边做边学。非常感谢Markus,你能告诉我有没有学习网站可以让我像你一样学习生成完美的XPath?@deepak.mr888对不起,我不知道有这样的网站,但谷歌是你的朋友。我自己也开始使用O'Reilly的XSLT1.0 Pocket参考资料学习XPath和XSLT。从那时起,它主要是在实践中学习。