我正在使用 python selenium 通過網站自動化常見行為。<div data-baan="1">我現在已經到了一個有許多<div vertical-align: inherit;">內部<a href>標簽的 div 的地步。請在下面找到 HTML 頁面的片段以進行澄清。
<div class="teetime-grid" data-baan="1">
<a href="#">
<div class="btn btn-success teetime has-bookings " data-time="1645165200"
title="Er zijn nog 3 beschikbare plaatsen op deze starttijd">
<span class="time">07:20</span>
<div class="icons">
<span class="icon bezet geslacht-m"> </span>
<span class="icon vrij"> </span>
<span class="icon vrij"> </span>
<span class="icon vrij"> </span>
</div>
</div>
</a>
<a href="#">
<div class="btn btn-success teetime has-bookings " data-time="1645165800"
title="Er zijn nog 1 beschikbare plaatsen op deze starttijd">
<span class="time">07:30</span>
<div class="icons">
<span class="icon bezet geslacht-m"> </span>
<span class="icon bezet geslacht-m"> </span>
<span class="icon bezet geslacht-m"> </span>
<span class="icon vrij"> </span>
</div>
</div>
</a>
</div>
我需要訪問<div vertical-align: inherit;">網格內的特定內容。在 Selenium 中,我知道我可以通過以下方式做到這一點:
driver = webdriver.Chrome()
driver.find_element_by_xpath("//a[2]/div")
在我上面的例子中選擇第二個標簽,在這種情況下,它有一個對應的時間 07:30 與之關聯(它在 中定義<span >07:30</span>)。
還有一種方法可以通過 的內容<span >而不是指定<a href>標簽串列中的數字來訪問這些元素嗎?因為現在我仍然必須知道哪個a[?]數字對應于某個時間。如果我每次都必須手動查找它,那么從一開始就自動執行此瀏覽器操作是沒有意義的。
uj5u.com熱心網友回復:
要訪問具體<div vertical-align: inherit;">對應的不同時間可以使用以下定位器策略:
選擇07:20 :
element = driver.find_element(By.XPATH, "//a[./span[text()='07:20']]")選擇07:30 :
element = driver.find_element(By.XPATH, "//a[./span[text()='07:30']]")注意:您必須添加以下匯入:
from selenium.webdriver.common.by import By
uj5u.com熱心網友回復:
這將找到div,其中包含一個特定的跨度子 1 級。
//span[@class='time'][text()='07:30']/..
如果您再添加一個/..,您會找到a(div 父級)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/424669.html
上一篇:SessionNotCreatedException:訊息:會話未創建:此版本的ChromeDriver僅支持Chrome版本96當前瀏覽器版本為98.0
下一篇:是否在Selenium4中洗掉了driver.getContextHandles()或driver.context(),因為這些方法即將用于Appium驅動程式?
