嗨,我正在尝试选择名称"Saleem";从HTML。它在一张桌子里,但我不知道这是否相关。名称可能并不总是在那里,所以如果名称包含在表中,我正试图找到一种选择元素的方法。例如";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("ctl00$MainContent$gvSearchResults$ctl02$btnDetails", "", false, "", "Details.aspx?id=5839", 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
这将从名称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()