Python:通过css选择器查找元素

Python:通过css选择器查找元素,python,selenium,selenium-webdriver,web-scraping,css-selectors,Python,Selenium,Selenium Webdriver,Web Scraping,Css Selectors,我正在尝试使用webdriver单击登录按钮 <a class="login-btn" href="javascript:;" data-bind="click:loginSection.loginClick"> <span class="btn-text">Login</span> </a> 或者尝试以下代码: submit=driver.find_element_by_class_name('login-btn').click()

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

<a class="login-btn" href="javascript:;" data-bind="click:loginSection.loginClick">
    <span class="btn-text">Login</span>
</a>
或者尝试以下代码:

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"}
要单击登录按钮,您可以使用以下代码行之一:

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

  • CSS选择器:

  • 使用CssSelector获得更细粒度还可以使用以下代码行:

    driver.find_element_by_css_selector("a.login-btn[data-bind='click:loginSection.loginClick'] > span.btn-text").click()
    
更新:
当您看到NoTouchElementException时,您可以检查它是否不工作。我很确定用户名和密码是正确的。@Lara19错误说明了什么?你能用粘贴问题中的错误吗?NoTouchElementException:消息:没有这样的元素:找不到元素:{“方法”:“css选择器”,“选择器”:“a.login-btn[data bind='click:loginSection.loginClick']>span.btn text”}你能检查一下你的登录表单是否在iframe中吗?DebanjanB建议的应该可以。你有没有试过在那条线前耽搁一下?您可以像这样尝试
驱动程序。通过链接文本(“登录”)查找元素。也可以单击()。顺便说一句,这是一个慢加载页面吗?@Mouli-nope,不是:)@SIM这很奇怪,它符合你的建议:)不是慢加载页面,只是从来没有点击过按钮
driver.find_element_by_css_selector("a.login-btn > span.btn-text").click()
driver.find_element_by_css_selector("a.login-btn[data-bind='click:loginSection.loginClick'] > span.btn-text").click()