如何使用python和硒在Web浏览器页面中单击图形按钮


<li id="tb_7" class="siebui-toolbar-enable" data-cmd="#15" data-subtoolbar="N" role="menuitem" 
title="Site Map" name="SiteMap" tabindex="-1" data-tbindex="7" data-autom="find:[ot]"><span 
class="siebui-icon-tb-sitemap ToolbarButtonOn"><img src="images/icon_sitemap_1.gif"><span 
class="siebui-toolbar-text">Site Map</span></span></li>

我尝试使用以下代码,让我在成功登录后进入应用程序,但出现错误(底部(:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
username = 'abc'
password = '****'
url = 'someurl.com'
driver = webdriver.Chrome('C:/chromedriver.exe')
driver.get(url)
driver.find_element_by_name('UserName').send_keys(username)
driver.find_element_by_name('Password').send_keys(password)
driver.find_element_by_id('s_22').click()
wait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Site 
Map']"))).click()'''

错误:

File "C:UsersAppDataLocalProgramsPythonPython36-32libsite-packagesseleniumwebdriversupportwait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

你很接近。您可以诱导WebDriverWaitelement_to_be_clickable(),您可以使用以下任一定位器策略:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.siebui-toolbar-enable[name='SiteMap'][title='Site Map']>span.siebui-icon-tb-sitemap.ToolbarButtonOn>img[src*='images/icon_sitemap_1']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='siebui-toolbar-enable' and @name='SiteMap'][@title='Site Map']/span[@class='siebui-icon-tb-sitemap ToolbarButtonOn']/img[contains(@src, 'images/icon_sitemap_1')]"))).click()
    
  • 注意:您必须添加以下导入:

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

最新更新