简体   繁体   English

查找包含文本的元素

[英]Find element which contains text

Could someone please assist me in following issue: i have to pickup from dropdown elements which have - Open as a part of title (as per on screenshot below) 有人可以在以下问题上为我提供帮助:我必须从具有以下内容的下拉元素中进行选择-作为标题的一部分打开 (如以下屏幕截图所示) 在此处输入图片说明

Since that value will be change during time period, it is useless to use that, and have to pickup ones with 'Open' status (not showed, but rest of statuses are: Frozen & Closed ) So, here is xpath which I tried: 由于该会在一段时间内发生变化,因此使用它是没有用的,而必须将其取为“打开”状态(未显示,但是其余状态为: FrozenClosed ),因此,这是我尝试过的xpath:

//*[@id="period"]/contains(@text, '')

For above i got result from test is true . 对于以上我从测试中得到的结果是正确的 (It does exist text as I understand that) But when add wanted text (据我了解,它确实存在文本)但是当添加所需文本时

//*[@id="period"]/contains(@text, 'Open')

I got as a result false and can not find elements. 结果我得到了假的 ,找不到元素。 Also, when searched with: 另外,当搜索时:

//*[@id="period"]

I got result (all periods are shown). 我得到了结果(显示了所有期间)。

 01. Oct 2018 - 31. Oct 2018 - Open01. Sep 2018 - 30. Sep 2018 - Open01. Aug 2018 and so on ...

HTML is as follows: HTML如下:

<main class="main row">
<div class="content clearfix column medium-8">
<div class="row">
<article class="column medium-12">
<div class="t-box">
 <p></p><div class="compete">
 <a class="button primary" href="« Back to overview</a>
 <div class="promotion">
  <h2 class="promotion-header"><img src="/assets/images/system/stats/language/EN.png.pagespeed.ce.nTcGwJ7dzC.png">Top of the month</h2>

 <form class="row" method="GET" action="/compete">
 <input type="hidden" name="id" value="3">
 <div class="column large-2">
  <label for="period"><strong>&nbsp;<br>Period:</strong></label>
   </div>
   <div class="column large-8">
   <select id="period" name="period">
   <option value="39">01. Oct 2018 - 31. Oct 2018 - Open</option><option    value="38">01. Sep 2018 - 30. Sep 2018 - Open</option><option value="37">01. Aug 2018 - 31. Aug 2018 - Open</option><option value="36">01. Jul 2018 - 31. Jul 2018 - Open</option><option value="35">01. Jun 2018 - 30. Jun 2018 - Open</option><option value="34">01. May 2018 - 31. May 2018 - Open</option><option value="33">01. 

What I am doing wrong, please assist. 我做错了,请协助。

To print all the months which have Open as a part of title you can use the following code block : 要打印标题中包含“ Open时间”的所有月份,可以使用以下代码块:

Select months = new Select(driver.findElement(By.id("period")));
List<WebElement> monthList = months.getOptions();
for(WebElement month:monthList)
    if(month.getAttribute("innerHTML").contains("Open"))
        System.out.println(month.getAttribute("innerHTML"));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM