我试图检查网站上的“强”元素是否包含文本“状态:可用”,然后将文本添加到列表中。这是我当前的代码:
def add_input(self, by: By, value: str, text: str, available_usernames: list, counter: int):
field = self.browser.find_element(by=by, value=value)
self.human_typing(field, text)
time.sleep(3)
try:
strong_element = self.browser.find_element(By.XPATH, "//strong[contains(text(), 'Status:')]")
if strong_element.text == "Status: Available":
available_usernames.append(text)
counter += 1
except NoSuchElementException:
pass
没有具体的错误代码,但代码未按预期运行。问题似乎出在代码的
strong_element = self.browser.find_element(By.XPATH, "//strong[contains(text(), 'Status:')]")
部分。
出了什么问题,如何解决?
要解决这个问题,您需要知道 Selenium 实际出错的原因。该元素可能不存在,或者该元素可能不包含文本“状态:”。
回答您的问题,“...我该如何解决这个问题?”
获取代码:
strong_element = self.browser.find_element(By.XPATH, "//strong[contains(text(), 'Status:')]")
if strong_element.text == "Status: Available":
available_usernames.append(text)
counter += 1
...在 Try/Catch 块之外,因为这可能会掩盖 Selenium 抛出的任何错误。