python selenium page object_python selenium-8 Page Object模式

封装空间操作为一个接口使用,而不是直接在页面中查找

from selenium import webdriver

from selenium.webdriver.common.by import By

from time import sleep

class Page():

url="https://www.baidu.com"

def __init__(self,driver,base_url=url):

self.base_url = base_url

self.driver=driver

def on_page(self):

print("on_page中的参数self.url"+self.url)

return self.driver.current_url == (self.base_url + self.url)

def _open(self,url):

print("_open传参:"+url)

url = self.base_url + url;

print("整合后的URL:"+url)

self.driver.get(url)

assert self.on_page(),"did not land on %s "%url

def open(self):

self._open(self.url)

def find_element(self,*loc):

return self.driver.find_element(*loc)

class Search(Page):

url='/'

search_key = (By.XPATH,"//input[@id='kw' and @class='s_ipt']")

def type_search(self,word):

self.find_element(*self.search_key).send_keys(word)

def type_submit(self):

self.find_element(By.XPATH,"//input[@id='su']").click()

def test_user_search(driver,word):

search = Search(driver)

search.open()

#通过提供的方法直接操作控件,减少冗余

search.type_search(word)

search.type_submit()

def main():

try:

driver = webdriver.Chrome("/Users/chenshanju/PycharmProjects/SeleniumOfJenkins/driver/chromedriver")

word="hello"

test_user_search(driver,word)

sleep(3)

result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text

assert "百度为您找到相关结果约" in result_text,"结果比对失败"

finally:

driver.quit()

if __name__=="__main__":

main()

3cafe5bd8ae278ac5362fbd91bca57eb.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值