我正在用Selenium/Python3创建一个网站,该网站只使用无效的选择器,如:
<input id="egg:bacon:SPAM" type="text"/>
<input id="egg:sausages:SPAM:SPAM" type="text"/>
egg:bacon:SPAM
&安培;
egg:sausages:SPAM:SPAM
)
driver.find_element_by_css_selector('input#egg:bacon:SPAM')
但我当然知道
selenium.common.exceptions.InvalidSelectorException
driver.find_element_by_xpath('//input[@id="egg:bacon:SPAM"]')
但是我的代码基于一个基于CSS选择器的自制库。添加XPATH支持将需要添加大约200行代码(不包括单元测试、文档等)来处理这种错误的而非一般的行为。
另外,删除这个网站是一个更大项目的一部分,在这个项目中,只有这个特定的网站使用那种CSS选择器,在10个网站上花那么多精力让我很不舒服。
我可以用一些像
find_element_by_css_selector('.foo > input:nth-child(2)')
有吗
清洁的
find_element_by_css_selector
或者我注定要在这个网站上使用XPATH?