无法通过xpath找到Selenium 2的元素

时间:2014-10-24 10:40:40

标签: python html python-2.7 selenium xpath

我需要在HTML中找到这个元素

<input id="hidder_form:j_idt286:parnterCategoryId" name="hidder_form:j_idt286:parnterCategoryId" type="text" value="" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" role="textbox" aria-disabled="false" aria-readonly="false" aria-multiline="false">

我正在这样做

使用由Chrome控制台生成的XPATH:

WebDriverWait(driver, 10).until_not(EC.presence_of_element_located((By.XPATH, '//*[@id="hidder_form:j_idt286:parnterCategoryId"])))

使用XPATH,它正在寻找一种正则表达式:

WebDriverWait(driver, 10).until_not(EC.presence_of_element_located((By.XPATH, '//*[starts-with(@id, "hidder_form") and ends-with(@id, "parnterCategoryId")]')))

最后使用XPATH,它通过页面完全符合我的元素

'/html/body/section[@id = "hidder"]/form[@id="hidder_form"]/div[@id="forms"]/div[@class="ui-outputpanel ui-widget"]/section[@id="category_edit_form"]/div[@class="column-container"]/div[@class="left column50per"]/fieldset[@class = "properties"]/div/input[ends-with(@id, "parnterCategoryId")]'

他们都没有工作。所有都给出了例外

selenium.common.exceptions.InvalidSelectorException:消息:u'给定的选择器由于以下错误,无法找到具有xpath表达式的元素:\ nSyntaxError:表达式不是合法表达式。

1 个答案:

答案 0 :(得分:0)

ends-with是一个XPath 2.0函数,您的浏览器可能使用XPath 1.0处理器(Selenium使用浏览器处理器)。

XPath支持:Comparison of layout engines (XML)