我正在使用xpath提取器从响应数据中检索表单属性值.但是,此响应数据包含字符串"C&I"等数据,这导致以下SAXException
jmeter.extractor.XPathExtractor:处理时SAXException
(substring-after(//form[@id='headerForm']/@action,'/dashboard.xhtml?'))对实体"I"的引用必须以';'结尾 分隔符.
我无法控制这些数据,因为它是从数据库中获取的.我尝试检查"使用整洁(宽容解析器)"选项.这会导致以下警告/错误
错误 - jmeter.util.XPathUtil:TidyException:第35行第31列 - 警告:修剪空<div>
第35行的答复如下:
`<div style="clear: both;"></div>`
提取该属性值对于我的进一步处理至关重要.
我正在使用以下XPath从html页面中选择一些数据.我想要选择的值之间有一些空格:
example=value1 value2 value3
Run Code Online (Sandbox Code Playgroud)
我的XPath表达式是选择值但删除文本之间的额外空格,如下所示:
value1 value2 value3
Run Code Online (Sandbox Code Playgroud)
如何确保不删除额外的空格?
我的xpath:
//*something/div/input[1]/@value
Run Code Online (Sandbox Code Playgroud)
我从中挑选价值的示例HTML:
<input type="radio" name='radio1' value="R92392 12132 sdlasldkaskl " id='some' >
Run Code Online (Sandbox Code Playgroud)
请注意,我得到的值是R92392 12132 sdlasldkaskl.但我希望保留文本之间的空格.
我在我的文件中使用XML并想要序列化然后反序列化一个对象,我有些新手.该对象包含一对字符串,一个int,然后是两个int []数组.使用XmlSerializer进行序列化很好,生成的XML看起来像这样:
<?xml version="1.0" encoding="utf-16"?>
<Harvey xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>Carl</Name>
<Ch>KNV</Ch>
<Tn>40</Tn>
<APoints>
<int>8</int>
<int>20</int>
<int>16</int>
<int>16</int>
<int>12</int>
<int>12</int>
<int>16</int>
<int>16</int>
<int>4</int>
<int>4</int>
<int>4</int>
</APoints>
<SPoints>
<int>3</int>
<int>12</int>
<int>10</int>
<int>10</int>
<int>6</int>
<int>6</int>
<int>10</int>
<int>10</int>
</SPoints>
</Harvey>
Run Code Online (Sandbox Code Playgroud)
问题是尝试将int []值加载回其数组中.我一直无法弄清楚如何告诉我想所有的Apoints加载到一个int []数组中的应用.我怀疑解决方案非常简单,但我一直无法弄清楚.
我在Window 7机器上使用Perl进行编码.我可以使用下面的XPath代码从XML中提取数据
use strict;
use warning;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/tradenet/message/header/unique_ref_no/date/text( )";
my($node) = $doc->findnodes($query);
$node->setData("$file_seq_number");
Run Code Online (Sandbox Code Playgroud)
但是,当我在不同的XML上使用相同的代码时,第二个文档中的xpath如下所示:
/TradenetResponse/OutboundMessage/out:OutwardPermit/out:Declaration/out:Header/cac:UniqueReferenceNumber/cbc:SequenceNumeric
Run Code Online (Sandbox Code Playgroud)
与Perl代码一起,这就是提取代码的样子:
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($newfile);
my $query = "/TradenetResponse/OutboundMessage/out:OutwardPermit/out:Declaration/out:Header/cac:UniqueReferenceNumber/cbc:SequenceNumeric/text( )";
my($node) = $doc->findnodes($query);
$node->setData("$file_seq_number");
Run Code Online (Sandbox Code Playgroud)
使用第二个代码,我无法从第二个XML检索数据.我在Perl.pl第5行的未定义值上收到此错误"无法调用方法"setData".
第二个XPATH地址中的":"字符是否会影响代码?
我在BI Publisher中有一个类似XML的XML-
<ROW1>
<TOTAL_RETAIL>10.95</TOTAL_RETAIL>
<TOTAL_TAX> 1.8</TOTAL_TAX>
<TOTAL_SHIPPING>7.95</TOTAL_SHIPPING>
</ROW1>
Run Code Online (Sandbox Code Playgroud)
<ROW1>不重复.现在,我的理解做了SUM我可以使用XPath功能的节点的sum()喜欢<?sum(.//TOTAL_RETAIL)?>.这将总结该节点的值TOTAL_RETAIL而已,我想的总和TOTAL_RETAIL,TOTAL_TAX和TOTAL_SHIPPING.有没有办法可以编写sum实现此功能的函数.
注意 - 它不能以编程方式处理,即使用变量等,因为它在报告模板中,并且必须定义<?sum(...)?>为此值将映射到Excel报告模板中的特定单元格.
我正在尝试解析一个充满.htm文件的文件夹.所有这些文件都包含需要删除的1个特定元素.这是一个td元素class="hide".到目前为止,这是我的代码.
$dir. entry是文件的完整路径.
$page = ($dir . $entry);
$this->domDoc->loadHTMLFile($page);
// Use xpath query to find the menu and remove it
$nodeList = $xpath->query('//td[@class="hide"]');
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是事情已经出错的地方.如果我执行var_dump节点列表,我会得到以下内容:
object(DOMNodeList)#5 (0) { }
Run Code Online (Sandbox Code Playgroud)
只是让大家知道我想要选择的内容,这里有一段摘录:
<td width="160" align="left" valign="top" class="hide">
lots of other TD's and content here
</td>
Run Code Online (Sandbox Code Playgroud)
到目前为止,有没有人看到我提出的问题?
我必须找到代码的XPath:
<td>
<input type="button" onclick="redirectToUserList(5);" class="btnManage" value="Manage Users" style="background-color: transparent;">
Run Code Online (Sandbox Code Playgroud)
使用firebug XPath是:
/ html/body/div/div/div [4]/table/tbody/tr/td/table/tbody/tr [2]/td/div/table/tbody/tr/td
/table/tbody/tr [5 ]/TD/DIV/DIV /形式/表/ tbody的/ TR [2]/TD [4] /输入
但是我怎么能有一个像我希望跟随的更短的xpath可以运行:// input [@ value ='Manage Users']
请建议如何使用标准语法找到更短的XPath?
我有复杂的xpath选择器.我想把它变成通用的,所以它可以指向输入和textarea.
示例xpath的
//someelement//input
//someelement//textarea
Run Code Online (Sandbox Code Playgroud)
如何将这两者合并为单个xpath?
使用Mechanize我想在HTML元素后面获取文本节点:
<b>test</b>THIS IS THE TEXT I WANT.
Run Code Online (Sandbox Code Playgroud)
一旦我<b>使用节点,如何获得该文本page.at('b')?
编辑:
我的CSSSelector是这样的:(在FF中工作正常)
for (int i = 1; i < _count; i++)
{
..................
..................
div#ctl00_ContentPlaceHolder1 table.gv tbody tr.item:nth-child(" + i + ") > td:nth-of-type(3)
..................
}
Run Code Online (Sandbox Code Playgroud)
编辑结束
我在FF中使用Selenium 2.29和IE(8)以及FF(17.1)我的所有测试用例都已通过,当我在IE中运行时,我的大部分测试用例都失败了,这里是错误消息:
Test method threw exception:
OpenQA.Selenium.WebDriverTimeoutException: Timed out after 30 seconds ---> OpenQA.Selenium.NoSuchElementException:
Unable to find element with css selector ==
Run Code Online (Sandbox Code Playgroud)
div#ctl00_ContentPlaceHolder1 table.gv tbody tr.item:nth-child(1)> td:nth-of-type(3)
我正在使用CSSSelector.
我是否必须更改CSS的CSSSelector才能工作?