gpt4 book ai didi

Python Selenium - 检查一个 WebElement 是否等于另一个 WebElement

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:20 28 4
gpt4 key购买 nike

如何比较两个 selenium WebElements 看它们是否相同?

首先,我检索了 input_fieldsfirst_input 元素的列表:

self.input_fields = driver.find_elements(By.CLASS_NAME, class_name)self.first_input = driver.find_element(By.ID, id)

然后我尝试检查 input_fields[0]first_input 是否是相同的 WebElement。

if self.first_input is not self.input_fields[0]:
self.__log.warning("WebElement first_input : {} != {}".format(self.first_input, self.input_fields[0]))

虽然sessionelement是一样的,但是无论如何都会触发警告信息。

WARNING  - WebElement first_input: <selenium.webdriver.remote.webelement.WebElement (session="796bf0bcf3e0df528ee932d477951689", element="94a2ee62-9511-45e5-8aa3-bd3d3e9be309")> != <selenium.webdriver.remote.webelement.WebElement (session="796bf0bcf3e0df528ee932d477951689", element="94a2ee62-9511-45e5-8aa3-bd3d3e9be309")>

最佳答案

编辑:使用 != 而不是 is not 会解决所有问题:

if self.first_input != self.input_fields[0]:

解决方案

if self.first_input.id == self.input_fields[0].id:
self.__log.info("Same element {} , {}".format(self.first_input.id, self.input_fields[0].id))

阅读文档我找到了 id属性(property),其definition用作私有(private)属性 _id

的 getter
@property
def id(self):
"""Internal ID used by selenium.

This is mainly for internal use. Simple use cases such as checking if 2
webelements refer to the same element, can be done using ``==``::

if element1 == element2:
print("These 2 are equal")

"""
return self._id

source

class WebElement(object):
def __init__(self, parent, id_, w3c=False):
self._parent = parent
self._id = id_
self._w3c = w3c

注意:

print("{}".format(self.first_input.id))

为我们提供与我们在对象中看到的相同的元素 ID。

94a2ee62-9511-45e5-8aa3-bd3d3e9be309

关于Python Selenium - 检查一个 WebElement 是否等于另一个 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57373121/

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