0

我试图弄清楚如何使用 Django Selenium Webdriver 来测试特定页面上的 href URL 是否正确形成。

例如http://www.domain.com/post/12/test_post

所以我想测试一个正则表达式,如:

'^post/(?P<id>\d+)/test_post)$'

虽然我知道帖子的名称(slug),但我不知道 ID 是什么。如何使用 Selenium 测试 href URL 的格式是否正确?

我试过了:

self._driver.find_element_by_xpath("//a[matches(@href='/post/(/?P<id>\d+)/test_post')]")

但我得到这个错误:

*** InvalidSelectiorException: Message: u'The given selector //a[matches(@href=\'/post/(/?P<id>\\d+)/test_post\')] is either invalid or does not result in a WebElement. The following error occurred:\n[InvalidSelectorError] Unable to locate an element with the xpath expression //a[matches(@href=\'/post/(/?P<id>\\d+)/test_post\')] because of the following error:\n[Exception... "The expression is not a legal expression."  code: "51" nsresult: "0x805b0033 (NS_ERROR_DOM_INVALID_EXPRESSION_ERR)"  location: "file:///var/folders/m

但我一直在说,““该表达不是合法表达。”

self._driver.find_element_by_xpath("//a[starts-with(@href, '/post']")  
self._driver.find_element_by_xpath("//a[starts-with(@href, 'post/']")  
self._driver.find_element_by_xpath("//a[starts-with(@href, '/post/']")  

在这里,我还得到了““该表达式不是合法表达式。”

有没有办法可以验证 href 标签的格式是否正确?

4

1 回答 1

1

嗨,

似乎您没有关闭方法匹配的括号

尝试:

self._driver.find_element_by_xpath("//a[matches(@href, '/post/(?P<id>\d+)/test_post')]")
于 2012-07-11T14:46:43.197 回答