我在 selenium-webdriver 源代码中进行了一些探索,并找到了元素定位器策略列表:
webdriver.Locator.Strategy = {
'className': webdriver.Locator.factory_('class name'),
'class name': webdriver.Locator.factory_('class name'),
'css': webdriver.Locator.factory_('css selector'),
'id': webdriver.Locator.factory_('id'),
'js': webdriver.Locator.factory_('js'),
'linkText': webdriver.Locator.factory_('link text'),
'link text': webdriver.Locator.factory_('link text'),
'name': webdriver.Locator.factory_('name'),
'partialLinkText': webdriver.Locator.factory_('partial link text'),
'partial link text': webdriver.Locator.factory_('partial link text'),
'tagName': webdriver.Locator.factory_('tag name'),
'tag name': webdriver.Locator.factory_('tag name'),
'xpath': webdriver.Locator.factory_('xpath')
};
是否可以使用嘶嘶声选择器引擎来扩展它?
有人用 Java 做过,但我不知道如何让它与 JavaScript 库一起工作。
当我尝试
webdriver.Locator.Strategy.sizzle = webdriver.Locator.factory_('sizzle');
我得到:
TypeError:无法读取未定义的属性“策略”
因此,扩展并非易事...