我正在嘗試使用 Selenium 和 Python 自動化一個程序。在 Chrome 中使用檢查,我找到了“按鈕”(這是一個跨度元素):
<span data-columnnum="1" data-ispersonalareaviewable="1" data-
originalmfpriority="1" data- personalareaviewposition="manage_area" data-isrequired="0" name="editOrderBtn" id="editOrderBtn" class="viewCommand
viewSize1 viewCommandGreenBtn" data-defaultvalue="" data-showonload="1"
data- fieldid="9536" data-link="//my.yad2.co.il/newOrder/index.php?
action=edit&CatID=2&SubCatID=1&OrderID=45330517" data-viewcommandactive="1" data- originalelementname="input"> <i class="fa fa-
pencil"></i> <span class="">Edit Details</span> </span>
此元素位于 div 內。任何地方都看不到按鈕元素。我試圖通過名稱、路徑等使用 Python 和 Selenium 找到這個元素。我找不到它的任何痕跡。如果我找到它,我希望它是可能的.click(),因為它不是一個按鈕。
我將感謝您的幫助。
試圖手動找到它:
from selenium import webdriver
session=webdriver.Chrome(r'C:\Users\me\chromedriver')
session.get("https://my.yad2.co.il/newOrder/index.php?action=personalAreaFeed&CatID=2&SubCatID=1") # This is user-password protected and won't be accessible
for x in session.find_elements_by_xpath('//span'):
print(x.get_property('attributes'))
嘗試使用 name / id 標簽:
session.find_elements_by_id('editOrderBtn')
session.find_elements_by_name('editOrderBtn')
這兩個命令導致一個空串列。
- 更新:該元素不可定位,因為它位于 iframe 內 *
uj5u.com熱心網友回復:
如果您想點擊 Edit Details
您可以使用基于文本的定位器 xpath,如下所示:
//span[text()='Edit Details']
請檢查dev tools(谷歌瀏覽器)我們是否有唯一的條目HTML DOM。
檢查步驟:
Press F12 in Chrome- >去element節- >做一個CTRL F- >再貼上xpath看看,如果你需要的element是越來越強調與1/1匹配的節點。
如果它是唯一的,那么有 4 種方法可以使用 Selenium 對其進行單擊。
代碼試用1:
time.sleep(5)
driver.find_element_by_xpath("//span[text()='Edit Details']").click()
代碼試用2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Edit Details']"))).click()
代碼試用3:
time.sleep(5)
button = driver.find_element_by_xpath("//span[text()='Edit Details']")
driver.execute_script("arguments[0].click();", button)
代碼試用4:
time.sleep(5)
button = driver.find_element_by_xpath("//span[text()='Edit Details']")
ActionChains(driver).move_to_element(button).click().perform()
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388011.html
