WebDriver元素(二)

1.用By定位元素web

from selenium.webdriver.common.by import By

find_element(By.ID,"kw")

find_element(By.Name,"wd")

find_element(By.CLASS_NAME,"s_ipt")

find_element()

find_element()

find_element()

find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")

2.控制瀏覽器窗口的大小瀏覽器

set_window_size()ui

from  selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

print("設置瀏覽器寬480、高800顯示")
driver.set_window_size(480,800)
driver.quit()

3.控制瀏覽器的後退、前進url

back() 和 forward()spa

from selenium import webdriver

driver = webdriver.Firefox()

first_url = 'http://www.baidu.com'
print("now access  %s" %(first_url))
driver.get(first_url)

second_url =‘http://news.baidu.com'
print("now access %s" %(second_url))
driver.get(second_url)

print("back to %s "%(first_url))
driver.back()

print("forward to %s"%(second_url))
driver.forward()
driver.quit()

3.模擬瀏覽器的刷新code

driver.refresh()orm

2、簡單的元素操做blog

  clear():   清除文本接口

  send_keys(*value):  模擬按鍵輸入事件

  click():     單擊元素

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.126.com")

driver.find_element_by_id("idInput").clear()
driver.find_element_by_id("idInput").send_keys("username")
driver.find_element_by_id("pwdInput").clear()
driver.find_element_by_id("pwdInput").send_keys("password")
driver.find_element_by_id("loginBtn").click()

driver.quit()

2.WebElement接口經常使用方法

submit()方法用於提交表單

from  selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.youdao.com")
driver.find_element_by_id('query').send_keys('hello')

driver.find_element_by_id('query').submit()

driver.quit()

size:返回元素的尺寸

text:獲取元素的文本

get_attribute(name):得到屬性值

is_displayed():設置該元素是否用戶可見

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

size = driver.find_element_by_id('kw').size
print(size)

text = driver.find_element_by_id('cp’).text
print(text)

attribute=driver.find_element_by_id("kw").get_attribute('type')
print(attribute)

result = driver.find_element_by_id("kw").is_displayed()
print(result)

driver.quit()

WebElement接口還能夠參考WeBDriver API

3、鼠標事件:

封裝在ActionChains類中

perform():     執行全部ActionChains中存儲的行爲

context_click(): 右擊

double_click(): 雙擊

drag_and_drop():拖動

move_to_element():鼠標懸停

1.鼠標右擊鍵操做:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get("http://yunpan.360.pn")

right_click = driver.find_element_by_id("xx")
ActionChains(driver).context_click(right_click).perform()
#ActionChains(driver)調用ActionChains()類,將瀏覽器驅動driver做爲參數傳入
context_click()方法用於模擬鼠標右鍵操做,在調用時須要指定元素定位
perform()執行全部ActionChains中存儲行爲,對整個操做的提交動做

2.鼠標懸停

move_to_element()用法與context_click()相同

…………………………

#定位到要懸停的元素
above = driver.find_element_by_id("id")
#對定位到的元素執行懸停操做
ActionChains(driver).move_to_element(above).perform()

3.鼠標雙擊操做

double_click方法用於模擬鼠標雙擊操做

……

double_click = driver.find_element_by_id("xx")
ActionChains(driver).double_click(double_click).perform()

4.鼠標拖放操做

drag_and_drop(source,target)在源元素上按住鼠標左鍵,而後移動到目標元素上釋放

  source:鼠標拖動的源元素

  target:鼠標釋放的目標元素

#定位元素的原位置
element = driver.find_elment_by_id("xx")
#定位元素要移動到的目標位置
target = driver.find_element_by_id("xx")

#執行元素的拖放操做
ActionChains(driver).drag_and_drop(element,target).perform()
相關文章
相關標籤/搜索