使用python + Selenium登录,但找不到div

时间:2017-12-08 06:20:30

标签: python ajax selenium

# _*_coding:utf-8_*_
from selenium import webdriver

driver=webdriver.Chrome()
url="https://login.alibaba.com"
driver.get(url)
driver.implicitly_wait(3)
print(driver.page_source)
driver.quit()

我想通过selenium登录,但找不到登录ID“fm-login-id”

3 个答案:

答案 0 :(得分:0)

根据您共享 URL url="https://login.alibaba.com",找到Email Address字段,即 fm-login-id Selenium-Java 您可以使用以下任一方法:

  • xpath

    driver.find_element_by_xpath("//input[@id='fm-login-id']")
    
  • cssSelector

    driver.find_element_by_css_selector("input#fm-login-id")
    

答案 1 :(得分:0)

阿里巴巴的登录位于不同的iFrame中,这就是为什么你没有得到它的ID并得到错误" 找不到元素"

我在java selenium中为你创建了一个样本并且它正在工作。

driver.get("https://passport.alibaba.com/mini_login.htm?lang=en_us&appName=icbu&appEntrance=default&styleType=auto&bizParams=&notLoadSsoView=false&notKeepLogin=true&isMobile=false&ut=B8605a4b80fd5c7e8e8957efccc7ad5ea&showKeepLogin=true&showSnsLogin=true&cssLink=https%3A%2F%2Fu.alicdn.com%2Fcss%2F6v%2Frun%2Fcommon%2Fxman%2Fhavana-thirdpart-login.css&regUrl=https%3A%2F%2Faccounts.alibaba.com%2Fregister%2Fregister.htm%3Freturn_url%3Dhttp%253A%252F%252Fwww.alibaba.com&rnd=0.2729010632370805");              
        Thread.sleep(3);        
        driver.findElement(By.xpath("//*[@id='fm-login-id']")).sendKeys("Test_User");

我运行了这段代码并且工作正常。

答案 2 :(得分:0)

为了能够处理身份验证表单中的元素,您需要切换到driver=webdriver.Chrome() url="https://login.alibaba.com" driver.get(url) deiver.switch_to.frame("alibaba-login-box") driver.find_element_by_id("fm-login-id").send_keys("my email") driver.find_element_by_id("fm-login-password").send_keys("my password")

{{1}}