Selenium Web驱动程序:如何获取所有属性值按钮按某个值搜索(python)

v9tzhpje  于 2022-12-23  发布在  Python
关注(0)|答案(2)|浏览(131)

我想在一个按钮中获取codelevel属性值,其中key="a488"
这是有许多按钮的html代码

<button type="button" key="a435" code="11-E22." level="1" class="btn btn-primary" onclick="addChild(this)"> Add</button>
<button type="button" key="a436" code="11-E22.1" level="2" class="btn btn-primary" onclick="addChild(this)"> Add</button>
<button type="button" key="a488" code="11-E22.1.1" level="3" class="btn btn-primary" onclick="addChild(this)"> Add</button>
<button type="button" key="a764" code="11-E22.1.2" level="3" class="btn btn-primary" onclick="addChild(this)"> Add</button>

这是我的python代码

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()))
driver.get('https://somewebsite.com')
WebDriverWait(driver, 10).until(EC.presence_of_element_located(
                (By.XPATH, "//button[@class='btn btn-primary btn-sm']")))

我坚持搜索按钮属性值,其中attribute key=“a488”

driver.find_element(By.????, '????').get_attribute('???')
5uzkadbs

5uzkadbs1#

你可以试试这个:

ele = driver.find_element(By.XPATH, ".//button[@type='button' and @key='a488']")

code = ele.get_attribute("code")

level = ele.get_attribute("level")
kyvafyod

kyvafyod2#

为了检索元素的属性,您需要等待该元素可见(如果这是一个可见元素)。基于您共享的HTML,您可以通过key="a488"定位该元素,然后按如下所示获取其属性:

element = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'button[key="a488"]')))
code_value = element.get_attribute("code")
level_value = element.get_attribute("level")

也可以使用XPath定位此元素

相关问题