from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
from selenium import webdriver from time import sleep import os if'HTTP_PROXY'in os.environ: del os.environ['HTTP_PROXY']
dr = webdriver.Chrome() file_path = 'file:///' + os.path.abspath('form.html') print file_path
dr.get(file_path)
# by id dr.find_element_by_id('inputEmail').click()
# by name dr.find_element_by_name('password').click()
# by tagname print dr.find_element_by_tag_name('form').get_attribute('class')
# by class_name e = dr.find_element_by_class_name('controls') dr.execute_script('$(arguments[0]).fadeOut().fadeIn()', e) sleep(1)
# by link text link = dr.find_element_by_link_text('register') dr.execute_script('$(arguments[0]).fadeOut().fadeIn()', link) sleep(1)
# by partial link text link = dr.find_element_by_partial_link_text('reg') dr.execute_script('$(arguments[0]).fadeOut().fadeIn()', link) sleep(1)
# by css selector div = dr.find_element_by_css_selector('.controls') dr.execute_script('$(arguments[0]).fadeOut().fadeIn()', div) sleep(1)
# by xpath dr.find_element_by_xpath('/html/body/form/div[3]/div/label/input').click()
sleep(2) dr.quit()
by id
1
<divid="coolestWidgetEvah">...</div>
1 2 3 4 5
# 写法一 element = driver.find_element_by_id("coolestWidgetEvah") # 写法二 from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value="coolestWidgetEvah")
# Go to the correct domain driver.get("http://www.example.com")
# Now set the cookie. Here's one for the entire domain # the cookie name here is 'key' and its value is 'value' driver.add_cookie({'name':'key', 'value':'value', 'path':'/'}) # additional keys that can be passed in are: # 'domain' -> String, # 'secure' -> Boolean, # 'expiry' -> Milliseconds since the Epoch it should expire.
# And now output all the available cookies for the current URL for cookie in driver.get_cookies(): print"%s -> %s" % (cookie['name'], cookie['value'])
# You can delete cookies in 2 ways # By name driver.delete_cookie("CookieName") # Or all of them driver.delete_all_cookies()
代理
1 2 3
profile = webdriver.FirefoxProfile() profile.set_preference("general.useragent.override", "some UA string") driver = webdriver.Firefox(profile)
拖放
1 2 3 4 5 6 7
from selenium.webdriver.common.action_chains import ActionChains # 要拖拽(drag)的元素 element = driver.find_element_by_name("source") # 要释放位置的目标元素 target = driver.find_element_by_name("target") # 拖拽element元素至target元素所在的位置 ActionChains(driver).drag_and_drop(element, target).perform()