在完成Web企业微信实战(二)作业时遇到了如下问题:
在定位通讯录页面-添加成员按钮时:
通过
.ww_operationBar .qui_btn.ww_btn.js_add_member
可以在consul中定位到上下两个添加成员元素
于是我在我的代码中使用了如下定位方式:
main.py
from selenium.webdriver.common.by import By
from Hogwarts.PageObject.Page.add_member import AddMember
from Hogwarts.PageObject.Page.base_page import BasePage
from Hogwarts.PageObject.Page.contact import Contact
from Hogwarts.PageObject.Page.import_address_book import ImportAddressBook
class MainPage(BasePage):
_url = "https://work.weixin.qq.com/wework_admin/frame"
def go_to_contact(self):
self.find(By.CSS_SELECTOR, "#menu_contacts").click()
return Contact(self.driver)
def go_to_add_member(self):
self.find(By.CSS_SELECTOR, "[node-type=addmember]").click()
return AddMember(self.driver)
def go_to_import_address_book(self):
self.find(By.CSS_SELECTOR, "[node-type=memberJoin]").click()
return ImportAddressBook(self.driver)
contact.py
from selenium.webdriver.common.by import By
from Hogwarts.PageObject.Page.add_department import AddDepartment
from Hogwarts.PageObject.Page.add_member import AddMember
from Hogwarts.PageObject.Page.base_page import BasePage
from Hogwarts.PageObject.Page.import_address_book import ImportAddressBook
class Contact(BasePage):
def go_to_add_department(self):
self.find(By.CSS_SELECTOR, "#js_contacts73 > div > div.member_colLeft > ul > li:nth-child(1) > a").click()
return AddDepartment(self.driver)
def go_to_add_member(self):
self.find(By.CSS_SELECTOR, ".ww_operationBar .qui_btn.ww_btn.js_add_member").click()
return AddMember(self.driver)
def go_to_import_address_book(self):
return ImportAddressBook(self.driver)
调试使用的测试用例如下:
from Hogwarts.PageObject.Page.first import First
from Hogwarts.PageObject.Page.main import MainPage
class TestAddDepartment:
def test_login(self):
# first = First()
# first.go_to_login()
main = MainPage()
main.go_to_contact().go_to_add_member()
在执行测试用例后,遇到如下报错:
E selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
E (Session info: chrome=81.0.4044.138)
C:\Program Files\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: StaleElementReferenceException
请问该如何解决,谢谢!