如何使用Selenium+;python

如何使用Selenium+;python,python,python-3.x,selenium,Python,Python 3.x,Selenium,我试图使用Selenium+Python逐个打开多个链接,但无法逐个单击每个链接并从每个链接获取数据 我试过: for i in range(0, 1): list_links = driver.find_elements_by_tag_name('a') i = [] for i in list_links: link = i.get_attribute('href') my_list = [link]

我试图使用Selenium+Python逐个打开多个链接,但无法逐个单击每个链接并从每个链接获取数据

我试过:

for i in range(0, 1):

    list_links = driver.find_elements_by_tag_name('a')

    i = []     

    for i in list_links:

            link = i.get_attribute('href')
            my_list = [link]
            matching = [s for s in my_list if "https://www.magicbricks.com/propertyDetails/" in s]
            str_list = list(filter(None, matching))
            print (str_list)
我在打印上述代码后得到了以下结果:

['https://www.magicbricks.com/propertyDetails/3-BHK-1865-Sq-ft-Multistorey-Apartment-FOR-Sale-Mulund-West-in-Mumbai&id=4d423335383538333735']
[]
['https://www.magicbricks.com/propertyDetails/1-BHK-520-Sq-ft-Multistorey-Apartment-FOR-Sale-Kandivali-West-in-Mumbai&id=4d423333323636353737']
[]
['https://www.magicbricks.com/propertyDetails/2-BHK-938-Sq-ft-Multistorey-Apartment-FOR-Sale-Sion-in-Mumbai&id=4d423332393937303531']
[]
['https://www.magicbricks.com/propertyDetails/2-BHK-672-Sq-ft-Multistorey-Apartment-FOR-Sale-Goregaon-West-in-Mumbai&id=4d423334393532373231']
[]
['https://www.magicbricks.com/propertyDetails/3-BHK-1325-Sq-ft-Multistorey-Apartment-FOR-Sale-Madh-in-Mumbai&id=4d423236343136393731']
[]
对于“单击链接”,尝试了此操作,但无效:

for link in matching:

       link.click()
       print (link)
编辑:

我试过:

for s in my_list:

    if "https://www.magicbricks.com/propertyDetails/" in s:

        print (s)
        driver.find_element[s].click()
获取错误:
驱动程序。查找\u元素[s]。单击()类型错误:“方法”对象不可下标

or 
driver.find_elements_by_link_text(s).click()
获取错误:
AttributeError:“list”对象没有属性“click”


请提出一些建议。提前谢谢

因为您的列表包含字符串,但不包含Selenium的Web元素(只有在此之后才能执行“单击”操作)

要做到这一点,您还需要保存
列表链接中的这些对象
列表(根据“匹配”链接更新版本)

代码:

PS:另一种不用Web元素的方法:在Web驱动程序中使用JavaScript,并在选项卡/窗口中打开链接(匹配的
列表)


希望它能帮助你

对于点击链接尝试了这个,但没有工作发生了什么?你有错误吗?用相关的HTML@John戈登,错误:
link.click()属性错误:“str”对象没有属性“click”
我从这里获取所有链接
https://www.magicbricks.com/property-for-sale/residential-real-estate?bedroom=1、2,3,4,5、%3E5和proptype=多层公寓、建筑楼层公寓、,Penthouse、Studio公寓、住宅、别墅、住宅小区&cityName=Mumbai
只需检查提取的所有链接是否都可单击,您可以通过检查元素的onClick()或类似属性来执行此操作。谢谢,您能给我一些示例吗
要执行此操作,您还需要保存列表链接列表中的这些对象(根据“匹配”链接更新版本)。
my_needed_links = []

list_links = driver.find_elements_by_tag_name("a")

# Get unique links.
for link in list_links:

    if "https://www.magicbricks.com/propertyDetails/" in link.get_attribute("href"):

        if link not in my_needed_links:

            my_needed_links.append(link)

# Go through of them and click on each.
for unique_link in my_needed_links:

    unique_link.click()
    # Switch to the tab.
    driver.switch_to_window(driver.window_handles[1])
    # Do some stuff inside tab.
    # Close the tab.
    driver.close()
    # Switch back to the main tab/window.
    driver.switch_to_window(driver.window_handles[0])