python硒无法单击下拉菜单中的隐藏元素

时间:2020-07-26 09:05:08

标签: python-3.x selenium selenium-webdriver selenium-chromedriver

我正在使用python3硒。

我正在尝试点击下拉菜单中的选项100:https://www3.wipo.int/branddb/en/# 请查看附件图片enter image description here

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import sys
import time
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.support.select import Select
import random
from selenium.webdriver.common.action_chains import ActionChains

#chrome_options = webdriver.ChromeOptions()
#chrome_options.add_argument('--proxy-server=http://%s' % random.choice(proxies))
driver = webdriver.Chrome()
driver.get('https://www3.wipo.int/branddb/en/#')
try:
    WebDriverWait(driver, 100).until(EC.visibility_of_element_located((By.XPATH, '//input[@id="skipValue1"]')))
except:
    sys.exit()

我在类SelectActionChains中尝试了许多方法,但是没有成功,因为该元素被隐藏了并且在没有悬停的情况下不会被加载。还尝试过FirefoxChrome浏览器,我认为执行某些Javascript可能会有所帮助,但不确定如何实现?

任何帮助!非常赞赏。在此先感谢

1 个答案:

答案 0 :(得分:0)

这是您的解决方案。您需要ActionChains:

actions = ActionChains(driver)
hovermenu=WebDriverWait(driver, 2).until(EC.visibility_of_element_located((By.XPATH, '//li[@class="current roundedMenu" ]')))
actions.move_to_element(hovermenu).perform()
WebDriverWait(driver , 2).until(EC.visibility_of_element_located((By.XPATH, '//a[(@class="menuItem") and (text()="100")]'))).click()

请确保具有以下进口:

from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC