我的网页显示了一些我需要阅读的数据。 例如,网页显示如下内容: 活动范围:05/06/2015 - 2015年12月30日 预算:$ 50,00.99
我需要使用Selenium Webdriver读取这些值。结构是:
<div class="inner-widget-container">
<div class="widget-menu-container" data-bind="attr:{id: internal.controlWidgetMenuId}" id="widget-369148223195225-menu" style="display: none;"></div>
<div class="widget-data" data-bind="attr:{id: internal.controlWidgetInnerContainerId}, event:{dblclick: api.editSettings}" id="widget-369148223195225-inner" style="left: 0px; right: 0px; top: -5px; bottom: 0px;"><div class="rich-text-widget-content" style="position: absolute; left: 10px; right: 10px; height: 320px; overflow: hidden;"><div class="CustomHTML" style=" color:#000000 ;position: absolute;top: 0;bottom: 0; left: 0; right: 0;"> <p><span style="font-size: 24pt;"> BMW 2015 National Video YouTube <br></span></p>
<p> </p>
<p><strong>Campaign Date Range:</strong> 05/06/2015 - 12/31/2015 </p>
<p><strong>Report Date Range:</strong> 10/18/2015 - 10/31/2015 </p>
<p><strong>Highlights</strong></p>
<p><User Input></p> </div></div></div>
</div>
请建议如何找到此广告系列范围元素并阅读其值?
任何帮助将非常感谢!!
答案 0 :(得分:0)
尝试这个
string readCampaignRange = driver.find_element_by_xpath("//div[@class='inner-widget-container']/p[3]").getText();
要获得更有效的代码,您可以在列表中选择所有
并检查它是否需要以下元素:
List<WebElement> p_list = driver.find_elements_by_xpath("//div[@class='inner-widget-container']/p");
string myElement = p_list[3].getText();
答案 1 :(得分:0)
您可以直接通过xpath提取文本:
首先,它会找到p
元素,其中strong
元素的文字为“广告系列”。然后获取p
元素的文本
String xpathExpression = "//p[./strong[contains(text(), 'Campaign')]]";
String campaignRange = driver.findElement(By.xpath(xpathExpression)).getText();
答案 2 :(得分:0)
尝试按照css选择器:
By.cssSelector("div[class='CustomHTML'] p:nth-child(3)")
并使用getText()
获取所需的文字。
driver.findElement(By.cssSelector("div[class='CustomHTML'] p:nth-child(3)")).getText();