私は、任意の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"))
、私が使用したいxpath
id
の代わりに。例
WebElement userMailId = driver.findElement(By.xpath("x_path"))
のために誰もがx_path
見つけるためのお手伝いをしてもらえますか?私は数時間を費やしてもまだ成功していない、それはこの世界でも可能かどうか疑問に思っていますか?
お勧めします。
@jainish私はxpathが何であり、どのようにするかを知っています。しかし、私はpythonを使用して実行時にxpathを生成したい。それは自動的に意味します。私が与えた例を参照してください。 –
'XPath'は特定の値ではありません。数多くのオプションがあります。どのような 'XPath'を使いたいのですか?絶対 'XPath'は、厳密な属性、すべての属性、テキスト、親ノードにバインドされています...? – Andersson
@Anderssonこれを聞いてくれてありがとう、私はこれを待っていた。相対的な 'xpath'は私のために働き、属性に関しては、これを理解するために' id'や 'name'を好むでしょう。そのため、実行時にPythonを使って 'id'を取り出す例を挙げました。 –