单击选项卡中的特定文本

2024-10-03 04:26:42 发布

您现在位置:Python中文网/ 问答频道 /正文

当我注册一个用户时,它总是显示在最后一页的一个表中(目前我有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)

预期行为:

转到最后一页,单击最近创建的用户的名称


Tags: 用户nameselfregisteridbylinkbutton
1条回答
网友
1楼 · 发布于 2024-10-03 04:26:42

根据您的描述,所需的名称应始终位于最后一页。在到达最后一页之前,代码正在查找所需的名称。你知道吗

与其使用for循环和while-else,不如使用while循环单击下一个链接(只要它存在)。一旦它不复存在,你就知道你已经到了最后一页。然后单击姓氏或直接找到所需的元素并单击它。你应该能够手工制作一个定位器来找到你想要的元素,但是你需要提供相关的HTML。你知道吗

相关问题 更多 >