gpt4 book ai didi

python - 使用带有 python 的 Selenium 通过部分 ID 选择元素?

转载 作者:太空狗 更新时间:2023-10-30 00:45:40 26 4
gpt4 key购买 nike

我正试图在 Python 2.7 中访问 Selenium 中的 Web 元素。元素ID是这样的:

cell.line.order(240686080).item(250444868).unitCost

第一个数字字符串“240686080”是已知的,但第二个数字“250444868”事先未知。

我试图通过这样的方式达到它。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("somewebsite.com")
driver.find_elements_by_id('input.line.order(240417939).item('+ '\d{9}'+').unitCost')

所以我的问题是,无论如何我们都可以仅使用已知 ID 的一部分来搜索和到达此元素吗?

我发现下面回答了类似的问题,但它是在 C# 中。不幸的是,我不懂 C#。

Finding an element by partial id with Selenium in C#

提前致谢!

编辑 4/8

元素编码如下:

<td id="cell.line.order(240417939).item(250159165).unitCost" class="or_monetarydata">
<input id="input.line.order(240417939).item(250159165).unitCost" type="hidden" value="135.00"
name="order(240417939).item(250159165).unitcost"></input>

135.00

</td>

我可以通过

获取元素列表
value=driver.find_elements_by_xpath("//*[contains(@id, 'input.line.order(240417939)')]")

谢谢!

最佳答案

虽然答案是在 C# 中,但底层解决方案仍然是相同的,通过使用 CSS 选择器:

driver.find_elements_by_css_selector('input[id*='cell.line.order(240686080)']')

或者 XPath 也可以做到这一点:

driver.find_elements_by_xpath('//*[contains(@id, 'cell.line.order(240686080)')]')

关于python - 使用带有 python 的 Selenium 通过部分 ID 选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15845563/

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