Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Selenium从动态板中的js触发元素中获取信息_Javascript_Python_Selenium - Fatal编程技术网

Javascript 如何使用Selenium从动态板中的js触发元素中获取信息

Javascript 如何使用Selenium从动态板中的js触发元素中获取信息,javascript,python,selenium,Javascript,Python,Selenium,我想从下面的板上获取信息。主板和整个页面通常是动态加载的,并使用js触发器进行操作。该板是搜索的结果,每当我尝试在新选项卡中打开url时,我都会得到以下信息:blank#blocked我不确定该怎么办,因为我不希望页面被重置,我希望在不刷新的情况下获取元素的信息。我真的很困惑,因为我不知道如何做到这一点,而不获得表格重新提交错误感谢任何帮助提供 我想获得的元素:[TEL][NAME][EMAIL] 我正在开发的网站: 这是我的代码: for activity in activities: dr

我想从下面的板上获取信息。主板和整个页面通常是动态加载的,并使用js触发器进行操作。该板是搜索的结果,每当我尝试在新选项卡中打开url时,我都会得到以下信息:blank#blocked我不确定该怎么办,因为我不希望页面被重置,我希望在不刷新的情况下获取元素的信息。我真的很困惑,因为我不知道如何做到这一点,而不获得表格重新提交错误感谢任何帮助提供

我想获得的元素:[TEL][NAME][EMAIL]

我正在开发的网站:

这是我的代码:

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','')