poium
poium copied to clipboard
Page Objects design pattern test library, support selenium、appium、playwright, etc
page: > from poium import Page, PageElement > > class WebviewHomePage(Page): > def get_middle_elements(self): > elements = [] > lists = [“首页”,“热门”,“女装”] > for i in lists: > elements.append(PageElement(xpath=f'//div[contains(@id, "quick-entrance-3")]/descendant::div[text()="{i}"]'))...
你原来的代码: ``` if self.k == "css": script = 'document.querySelector("{css}").style.border="2px solid red"'.format(css=self.v) context.execute_script(script) ``` 使用这种方式,只要定位到了元素就可以修改它的CSS增加边框 ``` ele = driver.find_element_by_class_name("r_item") driver.execute_script("arguments[0].style.border=\"2px solid red\"", ele) ```
` # selenium if by == "id_": self.__find_element((By.ID, value)) elem = Browser.driver.find_elements(By.ID, value)[self.index] elif by == "name": self.__find_element((By.NAME, value)) elem = Browser.driver.find_elements(By.NAME, value)[self.index] elif by == "class_name": self.__find_element((By.CLASS_NAME, value)) elem...
在实际项目中,一个测试项目有很多测试页面, 元素定位类是每个页面写一个页面元素类继承一个Page,还是一个网站所有元素都在这个继承Page的页面元素类中? 在调用元素的时候感觉页面元素不是很好区分...比如a页面有个登录,b页面有个登录按钮这种,两个都是登录元素命名一样的实际代表不同页面的元素。 如果是每个页面都继承Page,在使用的时候每个页面都需要实例化一个页面类传入driver? 有最佳实践的demo可参考吗?
 poium版本1.3.2,项目未使用appium,下载依赖时自动下载appium版本为4.0.0;
Element类的init方法里self.k, self.v = selection_checker(selector),self.k = LOCATOR_LIST.get(by, None) 返回的k类型为什么不做成统一的
mac本机连接grid,全选快捷键应按grid机器来设置
感觉DrissionPage的执行效率也很快,相比playwright有一拼。所以也想像Locator、Element、它们一样,对DrissionPage也进行元素剥离,这可以进行兼容改造么?