科普网站建设,电子商务网站功能设计与分析,seo推广哪家公司好,做网站值钱吗1.定位了元素没有做下一步操作#xff0c;比如#xff0c;点击、输入等功能#xff0c;而报错#xff0c;报错信息如下#xff1a;2.上传图片时#xff0c;定位元素#xff0c;应该定位input标签#xff0c;点击页面input标签肉眼没有看到定位到任何元素#xff0c;以…1.定位了元素没有做下一步操作比如点击、输入等功能而报错报错信息如下2.上传图片时定位元素应该定位input标签点击页面input标签肉眼没有看到定位到任何元素以为无法成功实际上只要有input标签被定位到是都可以上传图片的3.定义页面基础类时初始化webdiver传参数的时候没有对参数driver赋默认None值即一个默认参数导致页面报错如下传人默认参数在调用self.mainMain()时就可以不传入参数了class BasePage():_base_url def __init__(self, driver: WebDriver None):#就是因为这里没有传None❗️❗️⚠️self._driver Noneif self._driver is None:ops_chrome webdriver.ChromeOptions()ops_chrome.debugger_address 127.0.0.1:9222self._driver webdriver.Chrome(optionsops_chrome)else:self._driver driverif self._base_url ! :#这里的意思是如果_base_url不为空的话就执行跳转到某个页面这个页面的url其实是子类重写了父类的类属性self._driver.get(self._base_url)self._driver.implicitly_wait(5)4. 有时候报错有可能不是没有定位到元素而是时间太快页面没有加载出来,这个时候可以加一个等待时间再试一下5.封装定位元素的方法应该将by和locate都传进去使用起来更加灵活def find(self, by, locate):return self._driver.find_element(by, locate)6.在po设计模式中所有的页面都要继承页面基类(BasePage)7.定位元素的时候一定要和driver打开的页面是一致的。今天用已登录的页面去定位百度页面右上角的设置发现老是提示页面定位不到元素的错误其实就是因为driver打开的浏览器是没有任何登录信息的百度页面而我是去定位到的已登录状态的百度页面因此这两个不是同一个页面以后定位元素一定要记住这个坑并不是这个元素没有id属性.8.定位比如搜索设置中的悬浮窗时打开控制台中使用快捷键是定位不到的需要选中要查看的元素右键点击菜单中的检查9.如果没有定位到某个元素的时候可以打印driver.page_source来判断该元素是否在当前页面assert s_btn_wr in self.driver.page_source