当属性包含多个单词时,我在按属性选择节点时遇到问题.例如:
<div class="atag btag" />
Run Code Online (Sandbox Code Playgroud)
这是我的xpath表达式:
//*[@class='atag']
表达式适用于
<div class="atag" />
但不是前一个例子.我该如何选择<div>?
在我的网页中,有div一个class名为Test.
我怎么能找到它XPath?
我有一个HTML文件(来自Newegg),他们的HTML组织如下.其规格表中的所有数据均为" desc ",而每个部分的标题均为" 名称".'以下是来自Newegg页面的两个数据示例.
<tr>
<td class="name">Brand</td>
<td class="desc">Intel</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Core i5</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">LGA 1156</td>
Run Code Online (Sandbox Code Playgroud)
<tr>
<td class="name">Brand</td>
<td class="desc">AMD</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Phenom II X4</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">Socket AM3</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
最后,我希望有一个CPU(已经设置好)的类,它包含Brand,Series,Cores和Socket类型,用于存储每个数据.这是我能想到的唯一方法:
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
Run Code Online (Sandbox Code Playgroud)
并为其余的值执行此操作.我如何完成nextsibling并且有更简单的方法吗?
我对自动化的东西还是比较新的,所以这听起来像是一个愚蠢的问题.在发布问题之前,我确实谷歌搜索了它的地狱:)
无论如何,这是问题所在
我在Android设备上自动化测试其中一项测试是验证项目是否已被标记为"收藏夹"页面的代码段是:
<li class = "resultItem isFavorite" data-index="2">
<div class="name" data-cis="4ced6feb-3b5c-415a-ae1c-0b8bca8e3c85" onclick="return true">f,f</div>
</li>
Run Code Online (Sandbox Code Playgroud)
我可以在列表中找到元素el = @driver.find_element(:xpath, "//*[class='name' and text() ='f,f']").我希望el.class会告诉我resultItem isFavorite.相反,我得到的是:Selenium:WebDriver :: Element
如果某个项目未标记为收藏,则该字段中不会添加isFavorite标记.我希望使用isFavorite来验证项目是否被标记为收藏,但我似乎无法将其变为变量.
任何帮助,将不胜感激.
谢谢,
杰夫
可能重复:
抓取A元素的href属性
我需要解析包含某些单词的HTML文档的所有链接(它总是不同的).
例:
<a href="/bla:bla">BLA</a>
<a href="/link:link">BLA</a>
<a href="/link:bla">BLA</a>
Run Code Online (Sandbox Code Playgroud)
我只需要带有"href =/link:...."的链接,最好的方法是什么?
$html = "SOME HTLM ";
$dom = new DomDocument();
@$dom->loadHTML($html);
$urls = $dom->getElementsByTagName('a');
foreach ($urls as $url)
{
echo "<br> {$url->getAttribute('href')} , {$url->getAttribute('title')}";
echo "<hr><br>";
}
Run Code Online (Sandbox Code Playgroud)
在此示例中显示了所有链接,我需要特定的链接.