簡體   English   中英

如何根據Selenium,Python和Xpath提供的html定位元素

[英]How to locate the element as per the html provided through Selenium, Python and Xpath

我正在使用Selenium來填充Web表單,但是由於某種原因,這個特定的文本框給我帶來了麻煩。 它的html是:

<input type="text" class="black_ar" value="" size="25" id="type" name="type" 
onmouseover="showTip(this.id)" onmouseout="hideTip(this.id)" 
onblur="trimByAutoTag(this);onSubTypeChangeUnit('className',this,'unitSpan')" 
autocomplete="off" title="">

我用過:

driver.find_element_by_name('type').click() 

driver.find_element_by_xpath('xpath').click() 

但是他們都說找不到該元素。 我不確定它是否在iframe中(如果有人知道一種檢查方法),是否使用chropath(這是chrome擴展名)來查找元素的xpath。

編輯:chropath在相對xpath下說:“它可能是svg / pseudo / comment / iframe的子代。XPath不支持它們。” 如果有幫助

根據您共享以在文本框中單擊的HTML ,可以使用以下解決方案之一:

  • xpath

     driver.find_element_by_xpath("//input[@class='black_ar' and @id='type']").click() 
  • css_selector

     driver.find_element_by_css_selector("input.black_ar#type").click() 

在瀏覽器中打開網頁,例如chrome。 在文本框中按鼠標右鍵,然后選擇檢查菜單。 在oped開發工具中,查看您的文本框是否具有父iframe元素。 一種方法:

  1. 在Chrome開發工具中單擊內部,然后按Ctrl + F
  2. 在打開的搜索字段中,復制iframe input.black_ar

如果您首先要切換到此框架函數以在python,selenium中切換框架

要找到您的輸入,請使用driver.find_element_by_css_selector('input.black_ar')

您是否嘗試過driver.find_element_by_xpath("//input[@id='type']").click();

您都可以在瀏覽器中按F12或使用開發人員工具進行檢查; 之后按Ctrl+f並輸入//iframe然后嘗試查看該頁是否存在。

現在, ChroPath支持iframe。 因此,如果您檢查任何元素並且該元素在iframe中,則ChroPath會告知該元素在iframe中,並且會生成相對的xpath。

暫無
暫無

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

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