Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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与selenium同名?_Xpath_Selenium_Webdriver_Selenium Webdriver - Fatal编程技术网

我如何找到';是否存在第二个元素,该元素使用XPath与selenium同名?

我如何找到';是否存在第二个元素,该元素使用XPath与selenium同名?,xpath,selenium,webdriver,selenium-webdriver,Xpath,Selenium,Webdriver,Selenium Webdriver,我已经知道表中某个元素的文本: string title1 = Driver.FindElement( By.XPath( ".//[@id='ctl00_ContentPlaceHolder1_BreakdownGridView_ctl02_TitleLabel']" )).Text; 如何验证表中是否有第二个元素与title1具有相同的文本 以下是我的表格结构: <tr class="alt" style="background-color:White;height:

我已经知道表中某个元素的文本:

string title1 = Driver.FindElement(
  By.XPath(
    ".//[@id='ctl00_ContentPlaceHolder1_BreakdownGridView_ctl02_TitleLabel']"
  )).Text;
如何验证表中是否有第二个元素与title1具有相同的文本

以下是我的表格结构:

<tr class="alt" style="background-color:White;height:110px;">
  <td>
     <span id="ctl00_ContentPlaceHolder1_BreakdownGridView_ctl03_WindowStartLabel" tabindex="1">
        01/13/2013
     </span>
  </td>
  <td>
     <span id="ctl00_ContentPlaceHolder1_BreakdownGridView_ctl03_ShowLabel" tabindex="1">
       Lea‌​der of the Pack
     </span>
  </td>
  <td>
    <span id="ctl00_ContentPlaceHolder1_BreakdownGridView_ctl03_TitleLabel">
       Love at First Bite
    </span>
  </td>
  <td>
     <span id="ctl00_ContentPlaceHolder1_BreakdownGridView_ctl03_PremiereLabel">
        01/12/2013 22:00
     </span>
  </td>
  ...
</tr> 

01/13/2013
利亚‌​包袱
初恋
01/12/2013 22:00
...

在表结构中,执行如下xpath查询将选择所有span标记

现在,可以使用xpath选择具有特定文本的span标记,如下所示:

//tr/td/span[text() = "Text you're matching against"]

/* in your case*/

//tr/td/span[text() = title1]

在获得标题1后,尝试实现如下逻辑,以找出有多少元素具有相同的文本

int count=driver.findElements(By.xpath("//table[@id='urTable']//*[text()='"+title1+"']")).size();

根据计数,很容易找到有多少元素具有相同的文本。

这是为了获得包含该文本的跨度…(部分匹配)

这是为了获得相同的文本…(完全匹配)


根据您的问题,相同的xpath值是否包含2个元素。只需查看特定元素的静态值,并将其作为xpath。这肯定会奏效的。比如说

具有相同xpath值的保存和取消按钮

driver.find_element_by_xpath("//*[@id='id_sav']")-save
driver.find_element_by_xpath("//*[@id='id_sav']")-cancel
这里我们可以使用静态元素值

driver.find_element_by_xpath("//a[text()='save']")-save
driver.find_element_by_xpath("//a[text()='cancel']")-cancel
表结构:2013年1月13日第一口之恋的领队2013年12月1日22:00。。。
int count= driver.FindElements(
  By.XPath(
    ".//span[text()='"+titleOneText+"']"
  )).size();
driver.find_element_by_xpath("//*[@id='id_sav']")-save
driver.find_element_by_xpath("//*[@id='id_sav']")-cancel
driver.find_element_by_xpath("//a[text()='save']")-save
driver.find_element_by_xpath("//a[text()='cancel']")-cancel