簡體   English   中英

在python中使用Selenium定位Web元素

[英]Locating web element using selenium in python

我正在嘗試使用硒在網頁中查找元素。 當我在Web元素上“右鍵單擊”並檢查時,我可以在控制台中找到html代碼。 但是,當我從控制台復制同一元素的xpath並嘗試在firepath中執行它時,它顯示“沒有匹配的節點”。 為什么會這樣,我該如何解決?

這是元素的HTML。

<input id="mobile" type="text" onchange="javascript:dispLocMob(this);
"onkeydown="javascript:dispLocMob(this);
"onkeyup="javascript:dispLocMob(this);" value="" maxlength=
"10" placeholder="Mobile Number" name="mobile">

這就是我在做什么:

receiverMobileElement = browser.find_element_by_xpath('//*[@id="mobile"]')

請幫忙。

當您可以通過唯一 id查找元素時,為什么要使用xpath

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://example.com')

target_element = browser.find_element_by_id('mobile')

我總是說螺絲螢火蟲,請使用Chrome控制台。

從外觀上看,獲取此特定元素的最佳方法是以下兩個選項之一(假設'id = mobile'是唯一的)。

By.cssSelector("#mobile");
By.xpath("//input[@id = 'mobile']");

要使用Chrome控制台->

  1. 啟動Chrome
  2. 右鍵單擊並檢查您的元素。
  3. 您應該看到html代碼,控制台出現在其下方。 (如果看不到控制台,請點擊三個垂直點,然后選擇“顯示控制台”
  4. 現在,從這里您可以做一些很棒的事情! 您可以搜索要識別的元素,然后查看是否可以找到它們。 例如,查看By.cssSelector(“#mobile”); 可以輸入這個

document.querySelectorAll( “#移動”)

對於xpath,請輸入

$ xBy.xpath(“ // input [@id ='mobile']”);

只是一個建議...如果您的代碼有效,請不要擔心螢火蟲,並認真嘗試在chrome中嘗試這種方式!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM