我试图在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#。
先感谢您!
编辑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)')]')