Javascript 如何使用Selenium从动态板中的js触发元素中获取信息
我想从下面的板上获取信息。主板和整个页面通常是动态加载的,并使用js触发器进行操作。该板是搜索的结果,每当我尝试在新选项卡中打开url时,我都会得到以下信息:blank#blocked我不确定该怎么办,因为我不希望页面被重置,我希望在不刷新的情况下获取元素的信息。我真的很困惑,因为我不知道如何做到这一点,而不获得表格重新提交错误感谢任何帮助提供 我想获得的元素:[TEL][NAME][EMAIL] 我正在开发的网站: 这是我的代码:Javascript 如何使用Selenium从动态板中的js触发元素中获取信息,javascript,python,selenium,Javascript,Python,Selenium,我想从下面的板上获取信息。主板和整个页面通常是动态加载的,并使用js触发器进行操作。该板是搜索的结果,每当我尝试在新选项卡中打开url时,我都会得到以下信息:blank#blocked我不确定该怎么办,因为我不希望页面被重置,我希望在不刷新的情况下获取元素的信息。我真的很困惑,因为我不知道如何做到这一点,而不获得表格重新提交错误感谢任何帮助提供 我想获得的元素:[TEL][NAME][EMAIL] 我正在开发的网站: 这是我的代码: for activity in activities: dr
for activity in activities:
driver = webdriver.Chrome()
url = 'https://www.ffbatiment.fr/federation-francaise-du-batiment/laffb/annuaire.html?Typ=1&Rs=&SecteurActivite=B%c3%a2timent&Dep=&Acti={}'.format(activity)
print(url)
for department in range(98):
print('Department: ' + str(department + 1))
time.sleep(1)
if int(department) <= 9:
y = '0' + str(department + 1)
url1 = 'https://www.ffbatiment.fr/federation-francaise-du-batiment/laffb/annuaire.html?Typ=1&Rs=&SecteurActivite=B%c3%a2timent&Dep={}&Acti={}'.format(y, activity)
driver.get(url1)
driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_Button1').click()
number = 0
number = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00 > thead > tr.rgPager > td > div.CustomPagerHolder > h2')
number = number.text.split(':')[1]
number = int(number)
if number <= 20:
for raison in range(20):
try:
print('Works')
if rasion < 10:
rasionid = '0' + str(raison)
else:
rasionid = str(raison)
rasionname =driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{} > td:nth-child(1) > a > p'.format(rasionid))
print(rasionname.text)
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink')
tel = tel.text
print(tel)
except:
break
else:
for rasion in range(number):
if rasion <= 19:
rasionname = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{} > td:nth-child(1) > a > p'.format(rasion))
rasionname.click()
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink')
tel = tel.text
print('Rasion Number : {} [{}] [{}]'.format(rasion + 1, rasionname.text, tel))
#tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink')
#tel = tel.text
#print(tel)
elif rasion > 19 and rasion < 40:
driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00 > thead > tr.rgPager > td > div.NumericPagerHolder.Pagination > div > a:nth-child(2)').click()
rasionnumber = rasion - 20
try:
rasionname = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{}"]/td[1]/a/p'.format(rasionnumber))))
rasionname.click()
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink').get_attribute('href')
tel = tel[4:]
except:
print("Error")
print('Rasion Number : {} [{}] [{}]'.format(rasion + 1, rasionname.text, tel))
elif rasion > 39 and rasion < 60:
driver.find_element_by_css_selector("#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00 > thead > tr.rgPager > td > div.NumericPagerHolder.Pagination > div > a:nth-child(3)").click()
rasionnumber = rasion - 40
rasionname = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{}"]/td[1]/a/p'.format(rasionnumber))))
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink').get_attribute('href')
tel = tel[4:]
print('Rasion Number : {} [{}] [{}]'.format(rasion + 1, rasionname.text, tel))
#// *[ @ id = "ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__0"] /td[1] / a / p
#//*[@id="ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__6"]/td[1]/a/p
# ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__0 > td:nth-child(1) > a > p
##ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__3 > td:nth-child(1) > a > p
# tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink')
# tel = tel.text
# print(tel)
elif rasion > 59 and rasion < 79:
driver.find_element_by_css_selector("#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00 > thead > tr.rgPager > td > div.NumericPagerHolder.Pagination > div > a:nth-child(3)").click()
rasionnumber = rasion - 60
rasionname = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH,'//*[@id="ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{}"]/td[1]/a/p'.format(rasionnumber))))
rasionname.click()
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink').get_attribute('href')
tel = tel[4:]
print('Rasion Number : {} [{}] [{}]'.format(rasion + 1, rasionname.text, tel))
elif rasion > 79 and rasion < 99:
driver.find_element_by_css_selector("#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00 > thead > tr.rgPager > td > div.NumericPagerHolder.Pagination > div > a:nth-child(3)").click()
rasionnumber = rasion - 80
rasionname = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH,'//*[@id="ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_RadGrid1_ctl00__{}"]/td[1]/a/p'.format(rasionnumber))))
rasionname.click()
tel = driver.find_element_by_css_selector('#ctl00_ctl00_ContentPlaceHolderGlobal_ContentPlaceHolderContenu_FormView1_Ent_TelHyperLink').get_attribute('href')
tel = tel[4:]
print('Rasion Number : {} [{}] [{}]'.format(rasion + 1, rasionname.text, tel))
javascript:__doPostBack('ctl00$ctl00$ContentPlaceHolderGlobal$ContentPlaceHolderContenu$RadGrid1$ctl00$ctl04$ctl00','')