selenium的使用(二)

335 阅读1分钟

selenium登录xxx的程序:自动判断登录成功还是失败

import selenium
import selenium.webdriver
import time

# driver = selenium.webdriver.Chrome("C:\Users\xxxx\Desktop\chromedriver.exe")
# driver1 = selenium.webdriver.Firefox("../driver/geckodriver.exe")
# driver2 = selenium.webdriver.Ie("../driver/IEDriverServer.exe")
"""
selenium登录xxx的程序:自动判断登录成功还是失败
"""

def login(username,password):
    driver = selenium.webdriver.Chrome(r"C:\Users\xxx\Desktop\chromedriver.exe")
    driver.get("https://account.xxxx.com/signin?returnUrl=https%3A%2F%2Fwww.xxx.com%2F")
    time.sleep(3)
    name_elem = driver.find_element_by_id("LoginName")
    pwd_elem = driver.find_element_by_id("Password")
    name_elem.send_keys(username)
    pwd_elem.send_keys(password)
    time.sleep(3)
    button_elem = driver.find_element_by_id("submitBtn")
    button_elem.click()
    time.sleep(10)
    pagesource = driver.page_source
    return pagesource.find(u"退出") != -1

print(login("xxx","xxxxx"))

无界面浏览器

import selenium
import selenium.webdriver
import time

"""
无界面浏览器
作用:我们在前台开放太多的浏览器资源并不是一个明智的选择,这样可以使用无界面浏览器进行替代
"""
path = "../driver/phantomjs.exe"
driver = selenium.webdriver.PhantomJS(path)
driver.get("http://www.qq.com")
time.sleep(3)
driver.save_screenshot("qq.jpg")
print(driver.title)
print(driver.page_source)
driver.close()

QQ空间的登录(failed)

import selenium
import selenium.webdriver
import time

"""
QQ空间
第一个问题:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="switcher_plogin"]"}

QQ空间并没有登陆成功
"""
path = r"C:\Users\xxxx\Desktop\chromedriver.exe"
driver = selenium.webdriver.Chrome(path)
driver.get("https://qzone.qq.com")
time.sleep(5)
driver.switch_to.frame("login_frame")
a_elem = driver.find_element_by_id("switcher_plogin")
a_elem.click()
time.sleep(1)
name_elem = driver.find_element_by_id("u")
name_elem.send_keys("xxxxxx")
pwd_elem = driver.find_element_by_id("p")
pwd_elem.send_keys("xxxxx")
button_elem = driver.find_element_by_id("login_button")
button_elem.click()
time.sleep(3)

print(driver.page_source)