有人可以帮助我解决以下问题: 我必须从下拉元素中选择 - 打开作为标题的一部分(如下面的截图所示)
由于值会在时间段内发生变化,因此使用它是无用的,并且必须使用' Open'状态(未显示,但其余状态为:冻结& 已关闭) 所以,这是我试过的xpath:
//*[@id="period"]/contains(@text, '')
对于上面我得到的测试结果是 true 。 (据我所知,它确实存在文本) 但是当添加想要的文本时
//*[@id="period"]/contains(@text, 'Open')
我得到的结果是 false ,找不到元素。 此外,搜索时:
//*[@id="period"]
我得到了结果(显示了所有句号)。
01. Oct 2018 - 31. Oct 2018 - Open01. Sep 2018 - 30. Sep 2018 - Open01. Aug 2018 and so on ...
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> <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.
我做错了,请帮忙。
答案 0 :(得分:2)
要打印所有 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"));