Java 使用Selenium Webdriver从

Java 使用Selenium Webdriver从,java,selenium,Java,Selenium,标记读取数据时出现问题 我的网页显示了一些我需要阅读的数据。 例如,网页显示如下内容: 活动范围:2015年6月5日至2015年12月30日 预算:50,00.99美元 我需要使用SeleniumWebDriver读取这些值。结构如下: <div class="inner-widget-container"> <div class="widget-menu-container" data-bind="attr:{id: internal.controlWidge

标记读取数据时出现问题 我的网页显示了一些我需要阅读的数据。 例如,网页显示如下内容: 活动范围:2015年6月5日至2015年12月30日 预算:50,00.99美元

我需要使用SeleniumWebDriver读取这些值。结构如下:

<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;">&nbsp;BMW 2015 National Video YouTube&nbsp;<br></span></p>
<p>&nbsp;</p>
<p><strong>Campaign Date Range:</strong> 05/06/2015 - 12/31/2015&nbsp;</p>
<p><strong>Report Date Range:</strong> 10/18/2015 - 10/31/2015&nbsp;</p>
<p><strong>Highlights</strong></p>
<p>&lt;User Input&gt;</p> </div></div></div>
</div>
请建议我如何找到此活动范围元素并读取其值

任何帮助都将不胜感激

试试这个

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();

您可以通过xpath直接提取文本:

首先,它将找到在文本活动中具有强元素的p元素。然后获取p元素的文本


尝试以下css选择器:

By.cssSelector("div[class='CustomHTML'] p:nth-child(3)")
并使用getText获取所需的文本

driver.findElement(By.cssSelector("div[class='CustomHTML'] p:nth-child(3)")).getText();

感谢您的帮助,但Ans 1不会给出任何触摸元素异常。如果我尝试Ans2,那么字符串readCampaignRange将仅作为“Campaign Range”出现。我无法获得活动范围的值,即2015年6月5日-2015年12月30日。如果您能提供更多html文本,您需要一些id/类名,并从中提供您需要的元素的完整路径,我已使用更多html文本编辑了原始问题。请看一看。您尝试了什么,结果如何?就像你在学校做的那样。。。请出示你的作品这是获得问题答案的过程的一部分。它对你很有帮助,因为它迫使你调查自己的问题并仔细思考。它还向读者证明,你做了功课,并做出了合理的尝试来回答自己的问题。第三,它帮助读者找到并诊断问题,从而为您提供更好的答案,减少我们的时间浪费。我认为问题在于//p[/强…]?xpath非常好;-您能否提供收到的错误消息?thread main org.openqa.selenium.InvalidSelectorException中的异常:无效选择器:xpath表达式的结果//p[./strong[containstext,'活动日期范围:']]/text为:[object text]。它应该是一个元素。会话信息:chrome=46.0.2490.80驱动程序信息:chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86\u 64警告:服务器未提供任何stacktrace信息命令持续时间或超时时间:42毫秒有关此错误的文档,请访问:啊,好的,我将更新xpath,我们需要去掉/text部分->因为它不返回元素,很抱歉忽略了它;--请使用较短的xpath重试
driver.findElement(By.cssSelector("div[class='CustomHTML'] p:nth-child(3)")).getText();