12.2

 

元素定位从大的分类而言,分为两种:
1、单个元素的定位
2、多个元素的定位
当元素属性的IDname等完全一致的时候,那么这个时候,你发现无法使用
单个元素定位的方式来解决,那么可以使用多个元素定位的方式来进行
解决。思路:
获取元素的属性,其实是一个列表,看我们被定位的目标属性是在
第几位,那么就使用索引。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>

    <center>
        <p>用户名:<input type="text" id="user"></p>   
        <p>密码:<input type="text" id="user"></p>
        <p>登录:<input type="button" id="user"></p>
    </center>
</div>
</body>
</html>
driver=webdriver.Chrome()
driver.get('file:///D:/code/testdev/Ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/zxc.html')  在本地文档找到地址
lists=driver.find_elements_by_id('user')
t.sleep(3)
lists[0].send_keys('gao') 对应代码索引的位置
t.sleep(3)
lists[1].send_keys('asdf')
t.sleep(3)
lists[2].click()
t.sleep(5)
driver.quit()

 

from selenium import  webdriver
import time as t
driver=webdriver.Chrome()
 driver.get('http://www.baidu.com')
 lists=driver.find_elements_by_tag_name('input')
 lists[7].send_keys('hhh')    获取源代码的索引
 t.sleep(2)
 driver.find_element_by_id('su').click()
 t.sleep(2)
 driver.quit()

  

属性

获取测试的地址&获取源代码

from selenium import  webdriver
driver=webdriver.Chrome()

'''获取测试的地址'''
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('hao123').click()
print('获取测试的地址:',driver.current_url)
print('获取当前源代码:',driver.page_source)
# 断言
assert driver.current_url.endswith('hao.123.com/')==True
print(driver.title)
assert driver.title=='百度一下,你就知道'
driver.close()

 

前进和后退

from selenium import  webdriver
driver=webdriver.Chrome()
import  time as t
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
t.sleep(2)
driver.get('http://www.hao123.com')
t.sleep(2)
driver.back()
print('地址为:',driver.current_url)
t.sleep(2)
driver.forward()
print('地址为:',driver.current_url)
t.sleep(2)
driver.close()

 

 判断

from selenium import  webdriver
driver=webdriver.Chrome()
import  time as t
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
'''获取当前窗口'''
nowHnadler=driver.current_window_handle
t.sleep(3)
driver.find_element_by_partial_link_text('hao123').click()
t.sleep(3)
# 获取所有的窗口
allHandlers=driver.window_handles
t.sleep(3)
for itme in allHandlers:
# 判断窗口不是当前窗口
	if itme!=nowHnadler:
# 切换新窗口
		driver.switch_to.window(itme)
		t.sleep(3)
		driver.find_element_by_xpath('//*[@id="search"]/form/div[2]/input').send_keys('hao123')
		t.sleep(5)
		driver.close()
# 切换到当前的窗口
driver.switch_to.window(nowHnadler)
t.sleep(3)
driver.find_element_by_id('kw').send_keys('baidu')
t.sleep(5)
driver.quit()

  

清空

from selenium import  webdriver
driver=webdriver.Chrome()
import  time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.jd.com/')
so=driver.find_element_by_class_name('text')
so.send_keys('水果')
t.sleep(3)
so.clear()
t.sleep(3)
driver.quit()

  

 get_attribute():获取元素属性的值所有的input里面输入的值,都是在value的属性

from selenium import webdriver
import  time as t


driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.lagou.com')
t.sleep(4)
# 点击登录按钮
driver.find_element_by_link_text('登录').click()
t.sleep(5)
login=driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/div/div[2]/div[3]/div[1]/div/div[2]/form/div[1]/div/input').send_keys('123456')
# print(login.get_attribute('placeholder'))
t.sleep(5)
driver.quit()

  

from selenium import  webdriver
driver=webdriver.Chrome()
import  time as t

driver=webdriver.Chrome()
# driver.maximize_window()
driver.get('https://www.lagou.com/')
so=driver.find_element_by_id('search_input')
t.sleep(3)
so.send_keys('admin')
t.sleep(3)
print(so.get_attribute('value'))
driver.quit()

  

is_displayed():是否可见

is_enabled():是否可编辑

from selenium import webdriver
import  time as t

driver=webdriver.Chrome()
# driver.maximize_window()
driver.get('http://www.baidu.com/')
aboutBaidu=driver.find_element_by_link_text('关于百度')
print(aboutBaidu.is_displayed())
t.sleep(3)
# is_displayed():是否可见
# is_enabled():是否可编辑
# readly
driver.quit()

  

判断是否勾选

from selenium import webdriver
import  time as t

driver=webdriver.Chrome()
# driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
autoLogin=driver.find_element_by_id('store1')
t.sleep(3)
print('是否勾选:',autoLogin.is_selected())
t.sleep(3)
autoLogin.click()
t.sleep(3)
print('是否勾选:',autoLogin.is_selected())
driver.quit()

 

 iframe框架定位

from selenium import  webdriver
import  time as t

driver=webdriver.Chrome()
# driver.maximize_window()
driver.get('https://mail.sina.com.cn/')
t.sleep(3)
driver.find_element_by_id('freename').send_keys('w4eaestry')
t.sleep(5)
driver.find_element_by_id('freepassword').send_keys('347437///')
t.sleep(5)
driver.find_element_by_class_name('loginBtn').click()
t.sleep(3)
driver.quit()

  

下拉框

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<center>
    喜欢的编程语言:
    <select id="nr">
        <option  value="" selected>请选择您喜欢的编程语言</option>
        <option value="Python">Python语言</option>
        <option value="Go">Go语言</option>
        <option value="Java">Java语言</option>
    </select>
</center>
</body>
</html>
from selenium import  webdriver
from selenium.webdriver.support.select import Select
import  time as t

driver=webdriver.Chrome()
# driver.maximize_window()
driver.get('file:///D:/code/testdev/Ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index.html')
t.sleep(3)
nr=driver.find_element_by_id('nr')
# 针对Select类进行实例化
select=Select(webelement=nr)
# 索引方式
# select.select_by_index(2)
# value方式
# select.select_by_value('Go')
# 文本方式
select.select_by_visible_text('Go语言')
t.sleep(3)
driver.quit()

  

 

posted @ 2021-12-02 21:57  高。  阅读(151)  评论(0)    收藏  举报