python硒无法选择元素

埃尔卓·班恩(Erjol Bane)

我正在尝试在网页中选择以下元素。

.active > b:nth-child(1)

这是我的代码:

timbro = browser.find_element_by_css_selector('.active > b:nth-child(1)')
hover = ActionChains(browser).move_to_element(timbro)
hover.perform()

这是我得到的错误的一部分:

消息:无法找到元素:{“方法”:“ css选择器”,“选择器”:“。active> b:nth-​​child(1)”}“

我想做的是激活一个下拉菜单,以便我可以单击另一个链接。

HTML片段:

<li>
    <a href="#nogo" class="main-link active"><b>Menu iniziale</b></a>
    <ul style="display: block;" class="sub-links">
        <li>
            <a href="#nogo" onclick="Esegui('anagrafica.php')">Anagrafica</a>
        </li>
        <li>
            <a href="#nogo" onclick="Esegui('logout.php')">Fine sessione</a>
        </li>
        <li>
            <a href="#nogo" onclick="Esegui('main.php')">Home</a>
        </li>
        <li>
            <a href="#nogo" onclick="Esegui('timbraWFA.php')">Timbro</a>
        </li>
    </ul>
</li>
索拉布·高尔(Saurabh Gaur)

您应该尝试使用WebDriverWait,直到出现以下元素为止:-

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


wait = WebDriverWait(browser, 5) 

menuIniziale = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Menu iniziale")))

hover = ActionChains(browser).move_to_element(menuIniziale).move_to_element(wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Timbro"))))
hover.click().build().perform()

Edited1:-如果不幸LINK_TEXT不起作用,请尝试使用XPATH以下方法:-

menuIniziale = wait.until(EC.presence_of_element_located((By.XPATH, ".//a[contains(.,'Menu iniziale')]")))

hover = ActionChains(browser).move_to_element(menuIniziale).move_to_element(wait.until(EC.presence_of_element_located((By.XPATH, ".//a[contains(.,'Timbro')]"))))
hover.click().build().perform()

或者尝试CSS_SELECTOR如下使用:-

menuIniziale = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.main-link")))

hover = ActionChains(browser).move_to_element(menuIniziale).move_to_element(wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "ul.sub-links > li:nth-child(4)"))))
hover.click().build().perform()

Edited2:如果此元素在内iframe,则需要iframe在查找元素之前进行如下切换:-

wait.until(EC.frame_to_be_available_and_switch_to_it(("frame name or id")))

#Now after successfully switching to frame do any one of the above steps

Edited3:-如果现在可以打开菜单但不能选择子菜单,请尝试如下操作:-

wait.until(EC.frame_to_be_available_and_switch_to_it(("frame name or id")))

menuIniziale = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.main-link")))

hover = ActionChains(browser).move_to_element(menuIniziale)
hover.build().perform()

subMenu = wait.until(EC.visibility_of_element_located((By.XPATH, ".//a[contains(.,'Timbro')]")))
subMenu.click()

编辑4:最终代码

menuIniziale = wait.until(EC.presence_of_element_located((By.XPATH, ".//a[contains(.,'Menu iniziale')]")))
hover = ActionChains(browser).move_to_element(menuIniziale)
hover.perform()

subMenu = wait.until(EC.visibility_of_element_located((By.XPATH, ".//a[contains(.,'Timbro')]")))
subMenu.click()
hover = ActionChains(browser).move_to_element(subMenu)
hover.click().perform()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python硒中选择元素

来自分类Dev

选择元素与硒python问题

来自分类Dev

python硒无法遍历元素

来自分类Dev

硒无法通过ID选择元素

来自分类Dev

硒测试无法单击垫选择元素

来自分类Dev

硒选择元素并使用python单击按钮

来自分类Dev

无法通过硒中的CSS选择器获取元素

来自分类Dev

在硒Python中无法从div元素中找到表格元素

来自分类Dev

硒无法找到元素

来自分类Dev

无法找到元素:硒

来自分类Dev

硒无法找到元素

来自分类Dev

硒“无法找到元素”

来自分类Dev

没有这样的元素:无法找到元素:{“方法”:“ css选择器”,“选择器”:“。contact-button链接电话”} python中的硒

来自分类Dev

硒,选择<span>内的元素

来自分类Dev

硒按类选择元素

来自分类Dev

用硒选择多个元素

来自分类Dev

带有硒的Python:无法找到真正存在的元素

来自分类Dev

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

来自分类Dev

Python:硒选择

来自分类Dev

硒动态元素Python

来自分类Dev

硒无法获取选择结果

来自分类Dev

无法使用硒单击元素

来自分类Dev

硒无法从元素获取文本

来自分类Dev

无法在硒中找到元素

来自分类Dev

无法定位硒元素

来自分类Dev

无法在硒中找到元素

来自分类Dev

无论使用硒的方法如何,都无法可靠地选择元素

来自分类Dev

如何使用硒选择不同的元素?

来自分类Dev

如何使用硒方法选择Web元素