【问题标题】:Python: find_element_by_css_selectorPython:find_element_by_css_selector
【发布时间】:2018-07-12 16:45:21
【问题描述】:

我正在尝试使用 webdriver 点击登录按钮

<a class="login-btn" href="javascript:;" data-bind="click:loginSection.loginClick">
    <span class="btn-text">Login</span>
</a>

我的代码:

submit=driver.find_element_by_css_selector('a.login-btn').click()

或试试这个代码:

submit=driver.find_element_by_class_name('login-btn').click()

这些都不起作用,需要一些建议。提前致谢

错误:

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"a.login-btn"}

【问题讨论】:

  • 您能检查一下您的登录表单是否在 iframe 中吗?
  • DebanjanB 的建议应该可行。你有没有试过在这条线之前放一些延迟?你也可以试试driver.find_element_by_link_text('Login').click()。顺便说一句,这是一个加载缓慢的页面吗?
  • @Mouli 不,不是:)
  • @SIM 这很奇怪,它符合你的建议 :) 不是一个缓慢的加载页面,它只是从未点击过按钮

标签: python selenium selenium-webdriver web-scraping css-selectors


【解决方案1】:

要点击 Login 按钮,您可以使用以下任一代码行:

  • 链接文本

    driver.find_element_by_link_text("Login").click()
    
  • CssSelector

    driver.find_element_by_css_selector("a.login-btn > span.btn-text").click()
    
  • 使用 CssSelector 获得更精细的信息,您还可以使用以下代码行:

    driver.find_element_by_css_selector("a.login-btn[data-bind='click:loginSection.loginClick'] > span.btn-text").click()
    

更新: 如您所见,NoSuchElementException 您可以查看this discussion

【讨论】:

  • 它不工作。我很确定用户名和密码是正确的。
  • @Lara19 错误说明了什么?您可以将错误粘贴到问题中吗?
  • NoSuchElementException: 消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":"a.login-btn[data-bind='click:loginSection .loginClick'] > span.btn-text"}
猜你喜欢
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多