Selenium 通过 link_text 或 Xpath 查找元素 - ElementNotFoundException

问题描述 投票:0回答:1

我在网站上有一个href,如下所示:

<a href="Redirect.jsp?ScreenCode=L0000" target="LinkFrame">Transfer Doc</a>

当我期望 Selenium 打开浏览器窗口时,该元素甚至是可见的。

问题:

我正在尝试找到这个元素并尝试了以下方法:

driver = webdriver.Firefox()
... #navigation to current site
transDocBtn = driver.find_element(By.XPATH, '//a[contains(@href,"L0000")]')
transDocBtn = driver.find_element(By.PARTIAL_LINK_TEXT,"Transfer Doc")

这两行都没有找到该元素。两者都返回 ElementNotFoundException。

如何找到我的链接?上面两行不起作用的原因是什么?

编辑: 作为参考,这就是结构的大致样子。我的元素在

body class=menu

python html selenium-webdriver web-scraping
1个回答
0
投票

参考以下代码:

driver = webdriver.Firefox()
driver.get("Your URL")
driver.maximize_window()
wait = WebDriverWait(driver,10)

frame = driver.find_element(By.XPATH, "//frame[@name='LinkFrame']")
wait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(frame))

transDocBtn = wait.until(EC.element_to_be_clickable((By.XPATH, '//a[contains(@href,"L0000")]')))

进口:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
© www.soinside.com 2019 - 2024. All rights reserved.