【发布时间】:2018-11-08 16:18:02
【问题描述】:
我正在使用 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>
它在一个下拉菜单中,我可以打开菜单,但现在不能点击这个按钮。
【问题讨论】:
-
ng-click是 Angular 的一个属性,我怀疑它会像这样工作。你检查this了吗? -
我对其他按钮使用了 ng-click 并且效果很好 - 这就是为什么这让我陷入了循环。
-
对不起!我之前没有仔细看,但引号似乎有问题。你可以试试这个:
browser.find_element_by_css_selector("button[ng-click=\"$ctrl.login('gatorlink')\"]").click(); -
@Samarth 这样,我得到了一个 ElementNotVisibleException。这是因为这个按钮属于下拉菜单吗?您的代码找到了该按钮,但它说它不是“可交互的”
-
@hodsonus 这听起来像X-Y problem。与其寻求解决问题的帮助,不如编辑您的问题并询问实际问题。你想做什么?
标签: python selenium selenium-webdriver