如何放大一个元素时,刮互动地图?

2024-09-29 23:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码用于扫描整个西班牙,从蓝色的可点击点(只有在变焦的黑暗部分才可见)抓取信息。因此,如果您运行下面的代码,它将尝试单击蓝色圆点的簇,但失败,因为它们都在彼此的顶部,而且距离太近。你知道吗

因此,我想知道是否有可能放大蓝色圆点的簇,使它们彼此分离,单击所有圆点,再次缩小并继续扫描。你知道吗

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(options=chrome_options)

codes = []
driver.get('https://geoportal.minetur.gob.es/VCTEL/vcne.do')

for x in range(2):
    driver.find_element_by_xpath('//* [@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()

for x in range(4):
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panup"]').click()

for x in range(3):
     time.sleep(1)
     driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panright"]').click()

for x in range(2):
    driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()

for x in range(2):
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_pandown"]').click()

for x in range(9):
     driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_zoomin"]').click()

for x in range(60000):
    for x in range(273000):
        time.sleep(2)
        towers = driver.find_elements_by_css_selector("div#map image[id*='OpenLayers.Geometry']")
        for tower in towers:
            tower.click()
            codes.append(driver.find_element_by_xpath('//*[@id="divDatosFeatureInfo"]/table/tbody/tr[3]/td/div/p').text)
        for x in range(14):
            time.sleep(1)
            driver.find_element_by_xpath('//*[@id="OpenLayers.Control.PanZoomBar_59_panright"]').click()

Tags: inidforbytimedriverrangeelement
1条回答
网友
1楼 · 发布于 2024-09-29 23:33:06

您可以使用Javascript来单击蓝色的点,这样即使这些点重叠,也可以单击它们。这是样品。你知道吗

#replace "tower.click()" with below line
driver.execute_script("arguments[0].click();",tower);

我可能要挖通过找到方法来缩放和滚动整个西班牙地图。你知道吗

相关问题 更多 >

    热门问题