我试图单击下拉菜单中的链接,但我一直使用XPATH收到TimeoutException。
test = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div/div[1]/div[2]/div/ul/li[4]/ul/li[7]/a")))
driver.execute_script("arguments[0].click();", test)
但是,如果我尝试单击“注销”选项,则脚本有时会起作用。
logOut = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div/div[1]/div[2]/div/ul/li[7]/ul/li/a")))
driver.execute_script("arguments[0].click();", logOut)
有3个下拉菜单。该测试位于一个带有约12个选项的菜单中,而注销本身位于另一个菜单中。我想了解自己在做错什么。
这是菜单的代码。
<body>
<div class="container-fluid">
<div class="row headerLogo">
<!--<header class="navbar-default navbar-static-top headerLogo">-->
<div class="col-md-2">
<div class="vericaltext">WIISCPRD23V</div>
<a href="/Home" id="linkHome"><img src="/Content/images/Logo_menu2.png" class="logoSea" alt='SEA' /></a>
</div>
<div class="col-md-10">
<div class="row flat-nav">
<li class="color20 effect3">
<a><i class="fa fa-comments-o fa-2x"></i><span>Peq</span></a>
<ul class="column-based">
<li class="color20" style="font-weight:bold">Question</li>
<li><a href="/Quest">Quest</a></li>
<li><a href="/Retr">Retr</a></li>
<li class="color20" style="font-weight:bold">Vitss</li>
<li><a href="/Vit">Vit</a></li>
<li class="color20" style="font-weight:bold">BC</li>
<li><a href="/Trat">Trat</a></li>
<li><a href="/BC">BC</a></li>
<li class="color20" style="font-weight:bold">CAD</li>
<li><a href="/Cad">Ant</a></li>
<li class="color20" style="font-weight:bold">Fer</li>
<li><a href="/Add">Add</a></li>
<li><a href="/Emp">Emp</a></li>
<li><a href="/Est">Est</a></li>
<li><a href="/Seg">Seg</a></li>
<li><a href="/Rec">Rec</a></li>
<li><a href="/Cal">Cal</a></li>
</ul>
</li>
<li class="color49 effect3">
<a><i class="fa fa-envelope-o fa-2x"></i><span>E-mails</span></a>
<li class="color5 effect3 divLogout">
<a>
<div style="width:100%;padding-top:15px">
<div class="divAlinhadaEsquerda"><i class="fa fa-user-circle fa-3x"></i></div>
<div class="divAlinhadaEsquerda">
<div class="fontNomUsr">xxx</div>
<div class="fontUser">xxx
</div>
<div class="fontUlti">xxx</div>
</div>
</div>
</a>
<ul class="column-based">
<li><a href="/Home/Logout"><i class="fa fa-power-off"></i><span>Sair</span></a></li>
</ul>
</li>
</ul>
答案 0 :(得分:1)
您的xpath不正确,请尝试以下解决方案: 解决方案1:
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PesquisasElement=WebDriverWait(browser, 10).until(
EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'Pesquisas')]")))
TratamentoElement=WebDriverWait(browser, 10).until(
EC.element_to_be_clickable((By.XPATH, "//a[@href='/ManterBC']")))
#Create the object for Action Chains
actions = ActionChains(driver)
actions.move_to_element(PesquisasElement).move_to_element(TratamentoElement).click()
actions.perform()