我试图弄清楚如何使用 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 标签的格式是否正确?