亲爱的 Selenium Webdriver 专家,
我想知道 Selenium Webdriver 中的字符串匹配方法是否与 Java 中的以下代码片段一起正常工作:
if (property.findElements(By.xpath("./dl[@class='cN-featDetails']/dd[matches(class,'propertytype type-house']")).size() > 0 ) { // line 229
下面是第 229 行正在读取的 xhtml 网页:
<dl class="cN-featDetails">
<dt class="proptype">Property type</dt>
<dd id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl01_EliteListingTemplate_ddPropertyType" class="propertytype type-house" title="Property type: House">House</dd>
但是,这导致了以下错误:
Address: 28B/171 Gloucester Street, Sydney
Exception in thread "main" org.openqa.selenium.InvalidSelectorException: The given selector ./dl[@class='cN-featDetails']/dd[matches(class,'propertytype type-house'] is either invalid or does not result in a WebElement. The following error occurred:
[InvalidSelectorError] Unable to locate an element with the xpath expression ./dl[@class='cN-featDetails']/dd[matches(class,'propertytype type-house'] because of the following error:
[Exception... "The expression is not a legal expression." code: "51" nsresult: "0x805b0033 (NS_ERROR_DOM_INVALID_EXPRESSION_ERR)" location: "
我也试过也matches(class,'propertytype.*$']")
没有成功。
类的名称根据属性是房屋(type-house)还是公寓(type-apartment)而变化......
有关如何在匹配项中使用正则表达式来检查此属性类型元素中是否存在值/有效树节点的任何建议?
此代码段正在查找此 URL。
我在 Windows XP 和 7 平台上使用 Selenium 2.25.0、Java 1.7.0_11。
您的建议将不胜感激。