无法选择含硒的菜单项



我正在使用Selenium Python库制作一个屏幕抓取器,我已经制作了一些代码以便登录。由于某些原因,我现在被困在主菜单上,无法选择任何选项。我尝试过使用CSS Selector、类名和XPATH,但都无法选择任何可能的选项。无论发生什么,即使有很长的延迟,我也总是得到TimeoutException

我试图从这一页上刮下来的部分就在这里。

相关代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
# Open browser and go to the Webex login page
driver = webdriver.Chrome()
driver.get('https://admin.webex.com')
delay = 10  # seconds
long_delay = 20
# Login portion removed
# Menu selection goes here.
# I have tried the following with no luck
# The following lines produce a TimeoutException error
# Selecting menu item
WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.XPATH, "span[@class='left-nav-item__link']"))).click()
WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.XPATH, '//mch-left-nav-item-group[4]/ul/mch-left-nav-item[3]/li/span'))).click()
WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.XPATH, "//webex-root/webex-main[@class='control-hub-container']//webex-sidebar/mch-left-nav/nav/mch-left-nav-item-group[4]/ul/mch-left-nav-item[3]//span[@class='left-nav-item__link']"))).click()
WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.CSS_SELECTOR, "span[class='left-nav-item__link']"))).click()
WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.CSS_SELECTOR, "[aria-label] mch-left-nav-item-group:nth-of-type(4) mch-left-nav-item:nth-of-type(3) .left-nav-item__link"))).click()
# Selecting group of items
WebDriverWait(driver, delay).until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'left-nav-item')))
WebDriverWait(driver, delay).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'li.left-nav-item')))
# Selecting parent
WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.CSS_SELECTOR, "li[data-test-name='calling']")))

有人知道为什么我不能选择任何元素吗?

尝试第三个:的xpath

WebDriverWait(driver, long_delay).until(EC.presence_of_element_located((By.XPATH, "span[@class='left-nav-item__link']"))).click()

致任何有此问题的人。

当您在使用Selenium时打开一个新选项卡时,即使您正在查看新页面,Selenium也不会。你必须切换到正确的窗口。以下内容可以帮助您做到这一点。

driver.switch_to.window(driver.window_handles[NUMBER])

最新更新