检查pag上是否存在h1或h2

2024-09-30 22:16:07 发布

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

我有这个密码:


driver = webdriver.Chrome()
driver.implicitly_wait(60)
driver.get(link)

driver.add_cookie({'name' : 'access_token', 'value' : token})
driver.refresh()

time.sleep(5)
driver.find_element_by_name('next').click()
time.sleep(5)


如何检查页上是否存在或标记元素? 我这样试过:


falha = driver.find_element_by_tag_name('h1')
sucesso = driver.find_element_by_tag_name('h2')

if falha.text == "Por segurança":
    print ("Retorno: " + element.text + "\nToken: " + token)

if sucesso.text == "Pronto":
    print("Retorno: " + element.text + "\nToken: " + token)

driver.close()

但是我的代码很简单,如果其中一个元素不存在。你知道吗


Tags: textnametoken元素byiftimetag
3条回答

根据documentation,如果找不到指定的元素,locate方法将引发异常。你知道吗

If no element has a matching name attribute, a NoSuchElementException will be raised.

因此,如果不能保证元素的存在,则必须将其包装在try块中,以防止脚本终止。你知道吗

try:
    falha = driver.find_element_by_tag_name('h1')
except:
    falha = None

if falha is not None and falha.text == "Por segurança":
    print ("Retorno: " + element.text + "\nToken: " + token)

您可以为此使用driver.find_elements_by_tag_name()方法,它将返回匹配标记元素的列表。你知道吗

然后您可以使用它的大小来确定它是否存在。请尝试以下代码:

elementsh1 = driver.find_elements_by_tag_name('h1')
elementsh2 = driver.find_elements_by_tag_name('h2')

if len(elementsh1) > 0 :
    print("=> h1 is present...")
    print(elementsh1[0].text)
else:
    print("=> h1 tags are not there...")

if len(elementsh2) > 0 :
    print("=> h2 is present...")
    print(elementsh2[0].text)
else:
    print("=> h2 tags are not there...")

我希望这有帮助。。。你知道吗

如果标签“h1”存在,则运行try code;如果标签“h2”存在,则运行except code

try:
    element = driver.find_elements_by_tag_name('h1')
    print ("Retorno: " + element.text + "\nToken: " + token)

except:
    element = driver.find_element_by_tag_name('h2')
    print("Retorno: " + element.text + "\nToken: " + token)
finally:
    driver.close()

相关问题 更多 >