selenium 从自定义属性获取属性文本

q35jwt9p  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(248)

在下面的代码片段中,我有一个名为*Upgrade-test=“Second-Pull mktg-data-content”的自定义属性:

<section class="dvd-pull tech-pull-- secondary-pull--anonymous tech-pull--digital secondary-pull--dvd-ping tech-pull--minimise" upgrade-test="secondary-pull mktg-data-content" data-js="primary-pull" style="--primary-direct-d_user-bottom-pos:-290px;">

通过执行以下操作,我能够成功识别我的元素:

element = driver.find_element(By.XPATH, "//section[contains(@upgrade-test, 'mktg-data-content')]")

这个mktg-data-content在用户每次转到不同的页面时都会更改,例如,销售页面可以是sales-data-content,等等。
我想要的是找到一种方法来检索此自定义属性的动态文本,并将其传递给我的变量。任何帮助都将不胜感激。谢谢

yx2lnoni

yx2lnoni1#

您需要使用element.get_attribute("upgrade-test")获取属性值,然后需要进行字符串操作。

elementval = driver.find_element(By.XPATH, "//section[contains(@upgrade-test, 'secondary-pull')]").get_attribute("upgrade-test")
print(elementval.split(" ")[-1])

注意:-用空格分割,返回从零开始的列表,索引-1表示列表的最后一个值,因为列表中有两个元素,您也可以使用print(elementval.split(" ")[1])

ljsrvy3e

ljsrvy3e2#

您需要为该元素找到唯一的定位器。
没有看到那个页面,我们只能猜测,所以我可以猜测tech-pull--digitalsecondary-pull--dvd-ping类名是一个唯一的组合。
如果是这样的话,您可以使用以下代码:

attribute_val = driver.find_element(By.CSS_SELECTOR, "section.tech-pull--digital.secondary-pull--dvd-ping").get_attribute("upgrade-test")
print(attribute_val.split(" ")[-1])

这里的第一行用于定位元素并检索所需的属性值,而第二行用于隔离所需属性值的第一部分,如kunduk所述

相关问题