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

在Webdriver 2 Java中定位元素的XPath相关问题

费德宇
2023-03-14
   <dl class="cN-featDetails">
        <dt class="propertytype">Property type</dt>
        <!-- line 3 --> <dd id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_ddPropertyType" class="propertytype type-house" title="Property type: House">House</dd>
       <!-- line 3a --> <!-- or  class="propertytype type-townhouse"--->
        .......
<div class="main-wrap">
    <div class="s-prodDetails">
        <a id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_hypMainThumb" class="photo contain" href="/Property/For-Sale/House/LA/St Gabriel/?adid=2009938763">img id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_imgMainThumb" title="44 Crown Street, St Gabriel" src="http://images.abc.com/img/2012814/2778/2009938763_1_PM.JPG?mod=121010-210000" alt="Main photo of 44 Crown Street, St Gabriel - More Details" style="border-width:0px;" /></a>
        <div class="description">
             <h4><span id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_lblPrice">Offers Over $900,000 </span></h4>
             <h5>SOLD BY WAISE YUSOFZAI</h5><p>CHARACTER FAMILY HOME... Filled with warmth and charm, is a very well maintained family home in a quiet level street. Be...</p>
    </div>                                                                                                                                                                                                                                                                                                                        
    <a id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_hypMoreDetails" class="button" href="/Property/For-Sale/House/LA/St Gabriel/?adid=2009938763">More Details</a>
    <dl id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_dlAgent" class="agent">
        <!-- line 19 --> <dt>Advertiser</dt>
        <!-- line 20 --> <dd class="contain">                                       
        <!-- line 20a --> <!-- or class="" -->
            <img id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_imgAgencyLogo" title="Carmen Jones Realty" src="http://images.abc.com/img/Agencys/2778/searchlogo_2778.GIF" style="border-width:0px;" />                                                                                                                                                                                                                                                     
        </dd>
    </dl>
</div>
WebElement resultsDiv = driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/h1/em"));
// If results have been returned, the results are displayed in a drop down.
if (resultsDiv.isDisplayed()) {
    break;
}

(c)在按标记名搜索元素时,是否可以使用XPath语法。例如driver.findElement(by.tagname(“/div[@class='report']/result”));

(d)是否可以在XPath搜索中使用regex,如driver.findelement(“//div[@class='main-wrap']/dl[@class='agent']/dd[@class=''或@class='contain']”),以搜索第20-20a行?

(e)如何引用紧随其后的节点?例如假设当前节点是

共有1个答案

姬昊焱
2023-03-14

考虑到Zarkonnen给出的答案,我要补充(a)点

 public boolean isElementPresent(By selector)
       {
           return driver.findElements(selector).size()>0;
       }

此方法用于验证页面上是否存在元素。

您还可以涉及可以与isElement is present配对工作的isDisplayed()方法:

driver.findElement(By locator).isDisplayed()
String cssMoreDetails = "a[id='ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_hypMoreDetails']";
//and you simply call the described above method
isElementPresent(By.cssSelector(cssMoreDetails));
//if you found xPath then it be
isElementPresent(By.xpath("//*..."));
 类似资料:
  • 嗨,我是一个相当新的硒。可以有人请建议如何定位和元素在iframe asi是得到错误下面。 带有Iframe标记的DOM按钮元素的屏幕截图 以前编写的代码

  • 我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。

  • 我试图使用单击一个链接(看起来像是一个选项卡按钮),但出现错误。 这是片段: 我尝试了以下代码: 这是一个错误: 在屏幕截图中,你可以看到,我正在尝试点击建议方案按钮链接

  • 我的AUT有不同的选项卡来测试和验证不同的WebElements,这些选项卡上有几乎相同的属性。我需要验证一个下拉搜索框,并验证下拉列表中的选项。我的脚本找不到这个下拉搜索框,而xpath在firebug中工作得非常好,可以识别搜索框。 显示的错误为: 请告诉我什么可能是错误的,以及为什么Selenium不能使用xpath定位元素,而它在xpath中运行良好。另外,如果我的xpath不正确,请告诉

  • 你知道为什么吗?