Python + Selenium-无法通过类名找到元素

时间:2020-08-31 21:46:37

标签: python selenium

我正在尝试将Selenium与Python结合使用来登录网页。我已经到了可以成功输入用户名和密码的地步。最初,我尝试仅使用密码字段中的“ Enter”键,就像这样-

func getFiltered() {
                
  guard let url = URL(string: "https://somereader.com/reader/api/0/s=user/-/state/com.google/starred/items/ids?output=json")
   else {return}

  var request = URLRequest(url: url)
  request.httpMethod = "GET"

  URLSession.shared.dataTask(with: request) { (data, response, error) in
    guard error == nil else { print("error is \(error!.localizedDescription)"); return }
    guard let data = data else { print("Empty data"); return }
    let returnData = String(data: data, encoding: .utf8)
      print("returnData is \(returnData)")

    }.resume()
            
}

这对我不起作用,即使当我的光标位于密码字段中时按Enter键也可以使我正常。

所以现在我要尝试单击登录按钮,但是我的问题是我似乎无法正确找到该元素。

在Chrome控制台中,按钮是这样列出的(为便于阅读,添加了新行)-

passwordField = browser.find_element_by_css_selector('#password')
passwordField.send_keys(Keys.ENTER)

类名包含空格,所以我尝试了这个-

<button class="btn__primary--large from__button--floating mercado-button--primary"
data-litms-control-urn="login-submit"
type="submit" aria-label="Sign in">Sign in</button>

不幸的是,硒找不到该元素-

signInButton = browser.find_element_by_class_name('btn__primary--large from__button--floating mercado-button--primary')
signInButton.click()

如何定位此登录按钮?

编辑:这是网址-https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin

2 个答案:

答案 0 :(得分:1)

显然,它尝试将整个字符串视为一个类,但是它们是多个类。您是否尝试过仅传递一个班级名称? 尽管有可能找到多个项目。也许您最好找个#id来代替?

答案 1 :(得分:0)

尝试使用以下内容按类获取元素,然后单击它。

 driver.find_element_by_class_name("mercado-button--primary").click()