繁体   English   中英

如何使用 Selenium (Python) 检查元素是否存在?

[英]How do I check if an element is present with Selenium (Python)?

嗨,我正在尝试从 HTML 中将 select 命名为“Saleem”。 它在一张桌子里面,但我不知道这是否相关。 该名称可能并不总是存在,因此如果该名称包含在表中,我正在尝试找到一种方法来 select 元素。 例如,“Liam”在搜索时不会出现,但“saleem”会出现。 如何单击搜索 saleem 时出现的链接? 由于某种原因,Selenium 无法使用我在下面编写的代码找到元素。

这是网站(我只是将 Saleem 放在名称类别中并搜索): https://sanctionssearch.ofac.treas.gov/default.aspx

我尝试了下面的代码,但不幸的是不起作用。

driver.find_element_by_id("btnDetails").click()

 <a> id="btnDetails" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$gvSearchResults$ctl02$btnDetails&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Details.aspx?id=5839&quot;, false, true))" style="color:Blue">AL-IFRI, Saleem </a>

任何帮助表示赞赏!

是的,您可以在try..except中使用它

from selenium.common.exceptions import NoSuchElementException

# YOUR CODE 
        
try:
  webdriver.find_element_by_id('btnDetails')
except NoSuchElementException:
  # Element does not exist
else:
  # Element exists

这将 select 搜索结果从名称saleem并带您到 Saleem 的页面。 然后,您可以在该页面上做您想做的事情。 要返回搜索结果,只需使用browser.back()

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser_options = Options()
browser_options.add_argument('--user-agent="Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36"')
browser_options.add_argument('start-maximized')
browser = webdriver.Chrome(executable_path='C:/bin/chromedriver.exe',options=browser_options)
browser.get('https://sanctionssearch.ofac.treas.gov/default.aspx')
search_box = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="ctl00_MainContent_txtLastName"]')))
search_box.send_keys('Saleem')
search_box.send_keys(Keys.ENTER)
time.sleep(4)
try:
    results = browser.find_element_by_xpath('//*[@id="gvSearchResults"]/tbody').find_elements_by_tag_name('td')
    for result in results:
        button = result.find_element_by_tag_name('a')
        button.click()
        #Do Something
        browser.back(()
        browser.refresh()  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM