【发布时间】:2017-02-14 22:44:17
【问题描述】:
总是在我注册用户的时候,在最后一页的表格中显示(目前我有4页注册用户),所以我需要到最后一页点击这个用户创建
我的代码:
使用的定位器
class FeeScheduleLocators(object):
ADD_BUTTON = (By.ID, "save")
NAME = (By.ID, "id_name")
SAVE_BUTTON = (By.CSS_SELECTOR, "input[type='submit']")
FEE_SCHEDULE_LIST = (By.TAG_NAME, "td")
NEXT_LINK = (By.LINK_TEXT, "Next")
使用的方法
def create_fee_schedule(self):
self.name = fake.name()
self.find_element(FeeScheduleLocators.NAME).send_keys(self.name)
self.find_element(FeeScheduleLocators.SAVE_BUTTON).click()
WebDriverWait(self.driver, AUTOCOMPLETE_TIMEOUT).until(
EC.text_to_be_present_in_element((By.CLASS_NAME, "success"), 'Fee added sucessfully'))
self.fee_list = self.find_elements(FeeScheduleLocators.FEE_SCHEDULE_LIST)
for self.each_register in self.fee_list:
while self.each_register.text != self.name:
self.find_element(FeeScheduleLocators.NEXT_LINK).click()
time.sleep(2)
else:
each_register.click()
运行后的问题
测试点击到第二页并显示如下错误:
E StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
E (Session info: chrome=56.0.2924.87)
E (Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Mac OS X 10.12.3 x86_64)
预期行为:
转到最后一页并单击最近创建的用户的名称
【问题讨论】:
-
你能发布一个链接到页面吗?另外,请解释您要使用此代码完成的工作。我很难理解意图。点击所需的 TD 应该做什么?你能不直接搜索所需的TD而不是循环遍历列表吗?点击下一个链接有什么作用?换页还是?
-
@JeffC 我编辑了描述,看看你是否理解代码。否则,请告诉我。非常感谢。不幸的是,该页面是本地的
标签: python python-2.7 selenium selenium-webdriver