簡體   English   中英

我無法迭代(定位)從 selenium python 提交的此輸入,每次 id 更改,並且完整的 Xpath 也不起作用

[英]I am unable to iterate(locate) this input filed from selenium python, every time id changed, and full Xpath is also not working

大家好,我無法迭代從 selenium python 提交的此輸入,每次 id 更改,並且完整的 Xpath 也不起作用。 URL: https://support.google.com/blogger/answer/3091837

我已經試過了:-

driver.find_element_by_name("blog_URL").click()
driver.find_element_by_xpath('//*[@id="render_api158171433--blog_URL"]').click()
driver.find_element_by_xpath("/html/body/div[8]/div/section/div/div[1]/article/section/div/div[2]/div[1]/form/div[1]/input").click()
driver.find_element_by_id('render_api535892960--blog_URL')[2].click()

你的<input>有一個滑的 id 但它的名字似乎是唯一的name="blog_URL" ,所以你可以使用find_element_by_name

無論如何,當 id 或 class 每次都更改時,具有精確值的 findById 或 xpath 無濟於事。

您可以嘗試其他方法,例如:尋找鄰居,父母,孩子,兄弟姐妹等,可以定位然后導航直到找到您的滑<input> 這會有點貴!!

根據您的 html 的樣品:

表單有一個唯一的 id

  • 按 id 定位表格 = 騷擾
parentElement = driver.find_element_by_id("myFormId")
  • 獲取所有子元素
childElementsOfForm = parentElement.find_elements_by_xpath(".//*")
  • 迭代元素並獲取第二個元素並在此元素內執行新的查找。 我們可以看到我們的<input>在它的另一個孩子中。

搜索表單中的所有輸入

parentElement = driver.find_element_by_id("myFormId")
elementList = parentElement.find_elements_by_tag_name("input")

迭代它們並搜索 id 以render_api開頭的輸入

使用高級 CSS 選擇器定位元素

暫無
暫無

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

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