如何使用Selenium中的click打开链接

时间:2018-06-25 16:50:25

标签: python selenium

我最近对硒有麻烦。 我正在尝试从

获取所有URL。
  

http://cimex.co/resources.html

并在新标签上打开它。

我正在尝试使用以下代码:

import selenium, os
from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://cimex.co/resources.html')
links = browser.find_elements_by_css_selector('a[href^="https"]')
links[0].click()

虽然我面临另一个问题,但它是否有可能检测到Firefox运行,只是在新标签页中打开URL,而不是将Firefox作为新应用打开。

谢谢。 对不起,我的英语不好。

3 个答案:

答案 0 :(得分:1)

我已经必须这样做,它是与ChromeDriver一起使用的,我不能说它是否可以与Firefox一起使用,但这是代码:

def Browser(object):

   def __init__(self):
       self.driver = webdriver.Chrome(driver_path)
       self._tabs = {'default': self.driver.window_handles[0]}


    def new_tab(self, name):
        '''
        Create new tab `name`.
            name    New tab name
        '''
        self.driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
        self._tabs[name] = self.driver.window_handles[-1]


    def switch_tab(self, name):
        '''
        Switch to given tab.
            name    Tab name to switch
        '''
        self.driver.switch_to_window(self._tabs[name])


browser = Browser()
browser.driver.get('http://cimex.co/resources.html')

links = browser.driver.find_elements_by_css_selector('a[href^="https"]')
url = links[0].get_attribute('href')

# open new tab
browser.new_tab(url, 'tab-name')
# switch to new tab
browser.switch_tab('tab-name')
# back to default tab
browser.switch_tab('default')

答案 1 :(得分:0)

您可以尝试以下代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.action_chains import ActionChains

browser = webdriver.Firefox(executable_path = r'D:/Automation/geckodriver.exe')
browser.get("http://cimex.co/resources.html")

wait = WebDriverWait(browser, 30) 
main_tab = browser.current_window_handle
print(main_tab)
links = browser.find_elements_by_tag_name('a')

size = len(links)
print ('this the length of list:',size)
i = 0 
while i<size:
 ActionChains(browser).key_down(Keys.CONTROL).click(links[i]).key_up(Keys.CONTROL).perform() 
 browser.switch_to_window(main_tab)
 i=i+1;
 if i >= size:
  break

print(" here you quit the driver as per your wish")

答案 2 :(得分:-1)

从硒导入网络驱动程序

browser = webdriver.Firefox(gecko driver location)

browser.get('http://cimex.co/resources.html')

links = browser.find_elements_by_css_selector('a[href^="https"]')

for link in links:

    link.click()