簡體   English   中英

如何在python中使用select下面的元素selenium

[英]How to select the following element using selenium in python

我正在嘗試 select 的元素是下面的那個

<div id="mOnlineEligiblity" class="col span_1_of_3" style="">
  <a href="onlineElig.html" style="text-decoration: none !important;color: #275883;"><img src="../../images/mobileHome/Newicon/OnlineEligibility.png" height="65px" width="65px" class="morph">
  <br> Online Eligibility </a>
</div>

我嘗試了以下 select 它,但它說找不到元素

driver.find_element_by_id("mOnlineEligiblity")

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="mOnlineEligiblity"]"}

我希望能夠 select 然后點擊它

編輯: -

它存在於iframe中,如 Swaroop 所述,附上圖像以供參考

在此處輸入圖像描述

不得不像 Swaroop 提到的那樣切換到iframe

# Find the iframe
iframe = driver.find_element_by_xpath("//iframe[@name='NAME_OF_THE_FRAME']")

# Switch to the iframe
driver.switch_to.frame(iframe)

# Now find the element
driver.find_element_by_id("mOnlineEligiblity").click()

只要它確實在您正在加載的頁面上(不在 iframe 中),那么找到它並單擊它就不會有任何問題。

import platform
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.firefox.options import Options

options = webdriver.ChromeOptions()
if platform == "linux" or platform == "linux2":
    driver = webdriver.Chrome(executable_path='chromedriver_linux', chrome_options=options)
elif platform == "darwin":
    driver = webdriver.Chrome(executable_path='chromedriver_mac', chrome_options=options)
else:
    driver = webdriver.Firefox()

    driver.maximize_window()

    timeout = 10

    driver.get("file:///G:/Downloads/random.html")

    xpath = '//*[@id="mOnlineEligiblity"]/a'
    WebDriverWait(driver, timeout).until(EC.element_to_be_clickable((By.XPATH, xpath)))

    link_to_click = driver.find_element(By.XPATH, XPath)

    link_to_click.click()

    driver.quit()

我仍然建議通過xpath = '//*[@id="mOnlineEligiblity"]/a'定位您實際想要點擊的元素,而不僅僅是xpath = '//*[@id="mOnlineEligiblity"]'但如果它是一次性腳本,那么這更像是一種最佳實踐,而不是你需要擔心的任何事情。

暫無
暫無

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

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