wangwt123

UI自动化测试-Select类的方法

Select类的方法

在UI的自动化测试实战中,如果遇到下拉框的选择,我们可以使用Select类里面的方法来具体进行定位和解决。如果想使用Select的类,首先需要导入它,导入的命令为:

from selenium.webdriver.support.select import Select

方法1:按照索引的方式定位

方法2:按照value的方式定位

方法3:按照文本的方式定位

首先,在桌面新建一个"index.html",内容如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <center>
 9         <select id="name" >
10             <option value="go">go语言</option>
11              <option value="python">python语言</option>
12         </select>
13     </center>
14 </body>
15 </html>

其次,用Chrome浏览器,打开此网页,并右击鼠标,点击检查,如下图所示:

在使用这些方法之前,我们梳理一下逻辑,用select定位时,首先要理清上述的逻辑。代码如下:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.select import Select  #导入Select包
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("file:///C:/Users/Administrator/Desktop/select.html")
 8 
 9 #先进行实例化,先id,在进行select的选择
10 selectID=driver.find_element(By.ID,"name")
11 select=Select(selectID) #先让其定位到Select下
12 t.sleep(3)
13 
14 #按照索引的方式
15 select.select_by_index(1)
16 
17 #按照value的方式
18 select.select_by_value("python")
19 
20 #按照文本的方式
21 select.select_by_visible_text("go语言")
22 t.sleep(3)
23 driver.quit()

方法4:不按常规的下拉框select

在实际的操作中,作为前端的开发人员,很少严格按照上述的代码格式去书写代码,我们以拉勾网和58同城的为例:

同理58同城也是如此:

因此,针对这种下拉框的选择,到底应该如何来进行定位和操作了,其实也是很简单的,它的步骤为:

  • 先定位到“学历要求”或“帮助中心”后,然后点击。
  • 然后再选择下拉框中需要选择的项,定位到后进行点击,就能够定位到了。

对于拉勾网,我们先在职位里输入:“测试开发工程师”,然后点击“搜索”,进入上图所示界面,我们选择“学历要求”下拉框下的“大专”。代码如下:

 1 driver=webdriver.Chrome()
 2 from selenium import webdriver  #包:selenium,模块:webdriver
 3 from selenium.webdriver.common.by import By
 4 from selenium.webdriver.support.select import Select
 5 import  time as t
 6 driver.maximize_window()
 7 driver.get("https://www.lagou.com")
 8 t.sleep(5)
 9 driver.find_element(By.ID,"search_input").send_keys("测试开发工程师")
10 t.sleep(3)
11 driver.find_element(By.ID,"search_button").click()
12 t.sleep(3)
13 # 点击学历
14 driver.find_element(By.XPATH,'//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[2]/div/span').click()
15 t.sleep(3)
16 # 大专
17 driver.find_element(By.XPATH,'//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[2]/div/div/ul[2]/li[1]/span').click()
18 t.sleep(3)
19 driver.quit()

对于58同程网,我们先在搜索框里输入:“租房子”,然后点击“搜房源”,进入上图所示界面,我们选择“帮助中心”下拉框下的“客户帮助”。代码如下:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.select import Select
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("https://xa.58.com/")
 8 t.sleep(3)
 9 # 输入租房子
10 driver.find_element(By.ID,"keyword").send_keys("租房子")
11 t.sleep(3)
12 # 按搜索框
13 driver.find_element(By.NAME,"button").click()
14 t.sleep(3)
15 #点击右上角帮助中心
16 driver.find_element(By.XPATH,'//*[@id="commonTopbar_help"]').click()
17 t.sleep(3)
18 #客户帮助
19 driver.find_element(By.XPATH,'//*[@id="commonTopbar_help"]/div/p[1]/a[1]').click()
20 t.sleep(3)
21 driver.quit()

注意:这里的“XPATH”可能会动态的发生变化,但不影响我们定位,只要重新进入网页进行复制即可。

 

posted on 2022-06-28 18:47  DOUBLE快乐  阅读(246)  评论(0编辑  收藏  举报

导航