Python 上使用 Selenium 的 XPath 似乎不起作用

问题描述 投票:0回答:1

我试图检查网站上的“强”元素是否包含文本“状态:可用”,然后将文本添加到列表中。这是我当前的代码:

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:')]")
部分。

出了什么问题,如何解决?

python selenium-webdriver xpath
1个回答
0
投票

要解决这个问题,您需要知道 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 抛出的任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.