gpt4 book ai didi

python - 如何使用 if - elif - else 检查元素是否存在

转载 作者:行者123 更新时间:2023-12-05 06:20:33 24 4
gpt4 key购买 nike

我有一个下拉菜单,我需要检查它的条目。如果没有条目,我可以添加新条目,如果只有一个条目,我将其删除并添加新条目,当我有很多条目(>=2)时,我无法继续添加条目。我可以通过 person_rem_btn 检查它。如果我只有一个按钮 doc_person_table:0:person_rem_btn 我可以继续如果我有第二个按钮 doc_person_table:1:person_rem_btn 我无法继续。

我得到这个异常:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='frmMain:doc_person_table:1:person_rem_btn']/span[1]"}

不过,这就是重点,这个元素可能不可用,我只是检查它是否存在。我将不胜感激任何帮助。这是我的代码:

if driver.find_element_by_xpath("//*[@id='frmMain:doc_person_table:1:person_rem_btn']/span[1]") == True:
print ("there are already many entries")
driver.close()
elif (driver.find_element_by_xpath("//*[@id='frmMain:doc_person_table:1:person_rem_btn']/span[1]") == False and driver.find_element_by_xpath("//*[@id='frmMain:doc_person_table:0:person_rem_btn']/span[1]") == True):
print ("there is only one entry, it will be removed to proceed")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='frmMain:doc_person_table:0:person_rem_btn']/ span[1]"))).click()
else:
print ("there is no entry, you can proceed")

最佳答案

find_element_by_xpath 不返回 TrueFalse,它返回 WebElement 或抛出 NoSuchElementException。您可以使用 find_elements_by_xpath 获取列表并检查该列表是否包含任何元素。从等待可以指示页面已加载的不相关元素开始

WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[@id^='frmMain:doc_person_table")))
# assuming this element will always appear when the page is loaded

elements = driver.find_elements_by_xpath("//*[@id='frmMain:doc_person_table:1:person_rem_btn']/span[1]")
if elements: # more verbose if len(elements) > 0
print ("there are already many entries")
driver.close()
else:
elements = driver.find_elements_by_xpath("//*[@id='frmMain:doc_person_table:0:person_rem_btn']/span[1]")
if elements:
print ("there is only one entry, it will be removed to proceed")
elements[0].click()
else:
print ("there is no entry, you can proceed")

关于python - 如何使用 if - elif - else 检查元素是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60371873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com