6

Python 2.7 で Selenium の Web 要素に到達しようとしています。要素 ID は次のようになります。

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

最初の数字列「240686080」は既知ですが、2 番目の数字「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# を知りません。

C#でSeleniumを使用して部分IDで要素を見つける

前もって感謝します!

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)')]")

ありがとうございました!

4

1 に答える 1

13

答えは 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)')]')
于 2013-04-06T10:10:15.050 に答える