Python+selenium的元素定位

1、定位元素

1.1 id定位元素
from selenium import webdriver
browser = webdriver.Chrome('/Applications/Python 3.8/chromedriver') # chromedriver路径
browser.maximize_window() # 窗口最大化
browser.get('url')
browser.find_element_by_id(file_name).send_keys(file_path)
1.2 xpath定位元素
browser.find_element_by_xpath(file_name).send_keys(file_path)
1.3 class定位元素
browser.find_element_by_class_name(file_name).send_keys(file_path)
1.4 link定位元素
browser.find_element_by_link_text(“详情”)
1.5 css定位元素
browser.find_element_by_css_selector("#hus").send_keys("selenium2")

2、元素操作

2.1 send_keys输入值
browser.find_element_by_id('accNo').send_keys(4225438745541121154)
2.2 click 点击
browser.find_element_by_id('accNo').click()
2.3 clear 清空元素
browser.find_element_by_id('accNo').clear()
2.4 back 回到前一个页面
browser.get(URL1)
browser.get(URL2) # 同一个页面,从URL1调到URL2
browser.back() # 从URL2返回到URL1中
2.5 forward 前进一个页面
browser.get(URL1)
browser.get(URL2) # 同一个页面,从URL1调到URL2
browser.back() # 从URL2返回到URL1中
browser.forward() # 从URL1中前进到URL2
2.6 refresh 刷新
browser.get(URL1)
time.sleep(3)
browser.refresh() # 刷新当前页面
2.7 submit 提交
browser.get(URL1)
browser.find_element_by_id(file_name).send_keys(file_path)
browser.submit()
2.8 title 获取页面的标题
browser.get(URL1)
print("页面标题是:%s" % browser.title)
2.9 current_url 当前页面的url
browser.get(URL1)
url=driver.current_url
print("当前页面的url是:%s" % url)
2.10 text 获取页面超链接的文本值
browser.get(URL1)
link1 = browser.find_element_by_link_text(“详情”)
text = link1.text
print("文本值是:%s" % link1)
2.11 tag_name 页面标签类型
browser.get(URL1)
link1 = browser.find_element_by_link_text(“详情”)
tag=link1.tag_name#页面标签类型
print(tag)
2.12 is_enabled 页面元素是否可编辑
browser.get(URL1)
link1 = browser.find_element_by_link_text(“详情”)
tag=link1.is_enabled()
print(tag)
2.13 isDisplayed 判断元素是否用户可见
browser.get(URL1)
link1 = browser.find_element_by_link_text(“详情”)
tag=link1.is_displayed()
print(tag)
2.14 get_attribute 得到页面属性对应的值
browser.get(URL1)
link1 = browser.find_element_by_link_text(“详情”)
tag=link1.get_attribute("name")#得到name属性对应的值
print(tag)

3、浏览器设置

3.1 设置窗口最大化
browser.get(URL1)
browser.maximize_window()
3.2 设置窗口大小
browser.get(URL1)
browser.set_window_size(920,1024)
3.3 返回元素的大小
browser.get(URL1)
a = browser.find_element_by_css_selector("#kw").size
print(a)
3.4 关闭窗口,退出程序
browser.close() # 关闭浏览器
browser.quit() # 退出程序

4、鼠标事件

4.1 context_click 右击操作
browser.get(URL1)
browser.maximize_window()
right_click = browser.find_element_by_css_selector("#kw") # 定位到需要右击的元素
ActionChains(browser).context_click(right_click).perform() # 右击,不加perform不显示右击的内容
4.2 move_to_element 鼠标悬停
browser.get(URL1)
browser.maximize_window()
above = browser.find_element_by_link_text("设置")#定位到鼠标悬停的元素
ActionChains(browser).move_to_element(above).perform()
4.3 double_click 双击
browser.get(URL1)
browser.maximize_window()
double_click = browser.find_element_by_id("abank")#定位到鼠标悬停的元素
ActionChains(browser).double_click (double_click ).perform()
4.4 drag_and_drop 元素拖动
browser.get(URL1)
browser.maximize_window()
above = browser.find_element_by_link_text("新闻")#定位到原元素
target = browser.find_element_by_id("kw")#定位到目标元素
ActionChains(browser).drag_and_drop(above,target).perform()#把原元素拖动到目标元素上去

5、键盘事件

5.1 ENTER
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
browser.find_element_by_id('bank').send_keys(Keys.ENTER)
5.2 TAB
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
browser.find_element_by_id('bank').send_keys(Keys.TAB)
5.3 BACK_SPACE
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
browser.find_element_by_id('bank').send_keys(Keys.BACK_SPACE)
5.4 SPACE
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
browser.find_element_by_id('bank').send_keys(Keys.SPACE)

6、 设置等待

6.1 Sleep休眠方式
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
time.sleep(2)
browser.find_element_by_id('bank').send_keys(Keys.ENTER)
time.sleep(2)

7、 获取最新话柄

7.1 获取最后一个页面的话柄
from selenium.webdriver.common.keys import Keys # 导入对应的模块包
browser.get(URL1)
browser.maximize_window()
time.sleep(1)
browser.switch_to.window(browser.window_handles[-1]) # 最后打开的页面

8、 调用javascript

8.1 获取最后一个页面的话柄
from selenium import webdriver
from time import sleep
browser= webdriver.Chrome()
browser.get('URL')
#设置浏览器窗口大小
browser.maximize_window()
#搜索内容
browser.find_element_by_id('kw').send_keys('selenium')
browser.find_element_by_id('su').click()
sleep(2)
js = "$('input[id=%s]').attr('readonly',false)" % time_id  # 3.jQuery,设置为false
#执行script语句
browser.execute_script(js)
sleep(3)

9、 操作cookie

9.1 Get_cookie
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
cookie = driver.get_cookies()#h获取页面的cookie
print(cookie)
9.2 add_cookie
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值
cookie = driver.get_cookies()#h获取页面的cookie
for i in cookie:
    print('%s >> %s' % (i['name'],i['value']))
driver.quit()
9.3 delete_cookie
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值
cookie = driver.get_cookies()#h获取页面的cookie
for i in cookie:
    print('%s >> %s' % (i['name'],i['value']))
driver.delete_cookie('userName')#删除名字为userName的cookie
cookie2 = driver.get_cookies()
for i in cookie2:
    print('%s >> %s' % (i['name'],i['value']))
driver.quit()
9.4 delete_all_cookies
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.add_cookie({'name':'userName','value':'rudy'})#添加一个cookie值
cookie = driver.get_cookies()#h获取页面的cookie
for i in cookie:
    print('%s >> %s' % (i['name'],i['value']))
driver.delete_all_cookies()#删除所有的cookie
cookie2 = driver.get_cookies()
for i in cookie2:
    print('%s >> %s' % (i['name'],i['value']))
driver.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值