我在页面中有以下html
<div class="mst_updt" style=""> 27/06/2017 12:02:31 </div>
我正在尝试提取div之间的动态日期值:
WebElement webElement =driver.findElement(By.cssSelector(".mst_updt"));
String text = webElement.getText();
System.out.println("i am text : " + text);
System.out.println("Most read 1 : " + webElement.getText());
String a = driver.findElement(By.cssSelector(".mst_updt")).getText();
System.out.println("Most read 2 : " + a);
System.out.println(webElement);
Boolean isTheTextPresent = driver.getPageSource().contains("mst_updt");
System.out.println("And did we find the string ? : " + isTheTextPresent);
你会看到我正在尝试各种方法,这里是我得到的结果,为什么我不能提取日期和时间?
我是文字:
大多数读1:
大多数阅读2:
[[FirefoxDriver:任何人的火狐(e4a9c548-6146-4685-9944-6b5d51308bff)] - &gt; css选择器:.mst_updt]
我们找到了字符串吗? :真的
应该有帮助的完整代码..
<div class="content">
<div role="main" class="content-inner content-full-width">
<div class="main-content">
<section class="component-list">
<div class="section group">
<div class="col-lrg span-lrg_1_of_3">
<div class="component-weekly-wrap">
<header class="header-weekly-wrap">
<h4 itemprop="name">
<a class="section-title-link" href="example.com/static/survey-panel">Computer Survey Panel</a>
</h4>
</header>
<article>
<a href="example.com/static/survey-panel"><img alt="" src="/w-images/fa8edbd1-2c78-4415-9abf-334f7087ff8b/2/CTGRS17OA344213-370x229.jpg" /></a>
<div class="col-inner weekly-wrap-details">
<p><p>Join our <a href="example.com/static/survey-panel" target="_blank"><strong>Research Survey Panel</strong></a> and earn an Amazon voucher for each survey you complete!</p>
<p><strong><a href="example.com/static/survey-panel">Find out more</a></strong></p></p>
<!--<a class="btn download" href="#">More information</a> -->
</div>
</article>
</div>
</div>
<!--most read homepage updated START-->
<div class= "mst_updt" style="display:none;">
28/06/2017 12:38:15
</div>
<!--most read homepage updated END-->
<div class="col-lrg component-list-most-read span-lrg_2_of_3">
<div class="col-inner component-most-read">
<header class="header-most-read">
<h4 itemprop="name">Most read</h4>
</header>
<div class="ol">
<ol>
<li>
</li>
<li>
</li>
<li>
</li>
<li>
</li>
<li>
</li>
</ol>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
答案 0 :(得分:1)
以下是您的问题的答案:
要找到使用class
属性获取文本的特定div,必须避免。 Class
属性根据需要应用于多个div标记。您可以考虑使用其他定位器,最好使用xpath
或css
来标识此唯一div标记,并使用getText()
方法检索文本。
在这种情况下,由于您复制了单个div标签,因此很难帮助您。但是您可以考虑通过绑定父级别的xpath
或id
属性来构造name
来遍历HTML DOM,然后访问此div的class
属性
答案 1 :(得分:0)
尝试使用此xpath,如果它正常工作,则表示您使用的标识符正在为您提供错误的元素。
//*[contains(text(),'27/06/2017')]
答案 2 :(得分:0)
解决方案由以下人员提供:RafałLaskowski
我可以通过cssSelector的xpath获取值,需要使用以下命令返回:getAttribute("innerHTML");
s String a = driver.findElement(By.cssSelector(".mst_updt")).getAttribute("innerHTML");
String b = driver.findElement(By.xpath("//html/body/div[3]/div[2]/div[7]/div/div/section/div/div[2]")).getAttribute("innerHTML");
System.out.println("Most read 2 : " + a);
System.out.println("Most read 3 : " + b);