2017-02-27 3 views
1

私は、任意のWebページのページオブジェクトを、テキストファイル内のpython [data scraping]を使用してエクスポートしようとしています。また、私は要素のハードコードされたセレンのWebドライバの構文を提供しています。
Pythonを使用してWeb要素のXpathを(スクリプトの実行時に)生成するにはどうすればよいですか?

id属性を使用してこれを実現できます。たとえば、私はタイプtextの属性idと入力を持つすべてのWeb要素を
を見つけています:

from htmldom import htmldom 
URL = "https://www.fundsindia.com/content/jsp/registration/login.jsp#SignIn.com/" 
dom = htmldom.HtmlDom(URL) 
dom = dom.createDom() 

#retrieves all the elements with ids and "type=text" 
p_id = dom.find("[id]")  
for id in p_id.filter("[type=text]"): 
    print (("\t" + "WebElement" + " %s " + "= " + 'driver.findElement(By.id("%s"))')%(id.attr("id"),id.attr("id")) + "\n") 

これはとして出力が得られます。同様に

WebElement userName = driver.findElement(By.id("userName")) 

WebElement emailId = driver.findElement(By.id("emailId")) 

WebElement mobileNumber = driver.findElement(By.id("mobileNumber")) 

WebElement userMailId = driver.findElement(By.id("userMailId")) 

、私が使用したいxpathidの代わりに。例

WebElement userMailId = driver.findElement(By.xpath("x_path")) 

のために誰もがx_path見つけるためのお手伝いをしてもらえますか?私は数時間を費やしてもまだ成功していない、それはこの世界でも可能かどうか疑問に思っていますか?

お勧めします。

+0

@jainish私はxpathが何であり、どのようにするかを知っています。しかし、私はpythonを使用して実行時にxpathを生成したい。それは自動的に意味します。私が与えた例を参照してください。 –

+1

'XPath'は特定の値ではありません。数多くのオプションがあります。どのような 'XPath'を使いたいのですか?絶対 'XPath'は、厳密な属性、すべての属性、テキスト、親ノードにバインドされています...? – Andersson

+0

@Anderssonこれを聞いてくれてありがとう、私はこれを待っていた。相対的な 'xpath'は私のために働き、属性に関しては、これを理解するために' id'や 'name'を好むでしょう。そのため、実行時にPythonを使って 'id'を取り出す例を挙げました。 –

答えて

-1

のXPathDOMにルートノード(<html>)から、その特定の要素の位置をダウントレースwebelementのXMLパスです。

基本的に、2つのタイプのxパスがあります。絶対相対です。ファイアウォールブラウザのFirepathというプラグインがあり、アブソリュート xpathsの作成に役立ちます。初心者の方は、ファイヤーパスに火薬アドオンを使用してください。

相対的なxパスは、動的要素がノード内の他の要素との相対的な位置によってWeb要素を配置するときに、動的要素を作成するために作成されます。短くて簡潔です。相対xpathを作成する技術を学ぶには、w3schoolsで訪問してください。

+0

私は手動でxpathを見つけるつもりはありません。あなたが何かを見逃した場合のために詳細な説明を読んだり、詳細が必要な場合は教えてください。 –

関連する問題