我正在使用selenium-webdriver构建python3网络机器人,并且对selenium没有太多的经验。我收到一个异常,“ selenium.common.exceptions.InvalidSelectorException:消息:无效的选择器:指定了无效或非法的选择器”,因为这行代码是
browser.find_element_by_css_selector("button[ng-click='$ctrl.login('gatorlink')']").click();
我相当确定它与字符串“ gatorlink”周围的单引号有关,但我不确定。我知道选择器不正确。这是我要单击的按钮。
<button class="md-button md-ink-ripple" type="button" ng-transclude="" ng-click="$ctrl.login('gatorlink')" role="menuitem">
<md-icon class="ng-scope material-icons" role="img" aria-label="exit_to_app">exit_to_app</md-icon>
<span class="ng-scope">Log in with GatorLink</span>
</button>
在下拉菜单中,我可以打开菜单,但目前无法单击此按钮。
答案 0 :(得分:1)
您在单引号内有单引号,它是无效的选择器。
您需要转义单引号。
browser.find_element_by_css_selector("button[ng-click='$ctrl.login(\\'gatorlink\\')']").click()
它现在可以工作并找到元素。
答案 1 :(得分:0)
尝试将定位符用作browser.find_element_by_css_selector(button.md-button md-ink-ripple).click();