【问题标题】:Open scraped clickable button in a new tab in Python + Selenium在 Python + Selenium 的新选项卡中打开抓取的可点击按钮
【发布时间】:2017-11-05 21:50:27
【问题描述】:

我正在尝试,在抓取我想要关注的链接后,在新标签中打开它。我尝试了几种方法,但无济于事。我的代码:

from selenium import webdriver
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.keys import Keys

browser=webdriver.Chrome()
urlbet='https://www.bet365.es/?&cb=103265469#/HO/'

browser.get(urlbet)

sport=WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.XPATH,'//*[@id="dv1"]/a')))

sport.click()

login = WebDriverWait(browser, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, 'hm-Login')))

fields = login.find_elements_by_css_selector('.hm-Login_InputField')
button = login.find_element_by_css_selector('.hm-Login_LoginBtn')

user='my_user'
passw='my_pass'
fields[0].send_keys(user)
fields[1].click()
fields[2].send_keys(passw)
button.click()

通过所有这些,我登录我的帐户并到达我想要的网页。

trial=WebDriverWait(browser, 10).until(
    EC.presence_of_element_located((By.XPATH,'//div[contains(text(), "Baloncesto")]')))

在这里,我应该在新选项卡中打开该按钮,例如右键单击“在新选项卡上打开”,但我不能。我尝试了以下方法:

trial.send_keys(Keys.COMMAND + 't')

trial.send_keys(Keys.CONTROL + Keys.SHIFT + Keys.RETURN)

两次我得到的是:

WebDriverException: unknown error: cannot focus element
(Session info: chrome=60.0.3112.113)
(Driver info: chromedriver=2.33.506120 
(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86_64)

我在 Windows 7 上运行 python,webdriver Google Chrome。

【问题讨论】:

    标签: python google-chrome selenium tabs


    【解决方案1】:

    不要尝试使用trial.send_keys(Keys.COMMAND + 't')trial.send_keys(Keys.CONTROL + Keys.SHIFT + Keys.RETURN),而是尝试使用action_chains,如下所示:

    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    action = ActionChains(driver)
    elem = driver.find_element_by_link_text("Gmail")
    action\
        .move_to_element(elem)\
        .key_down(Keys.SHIFT)\
        .click(elem)\
        .key_up(Keys.SHIFT)\
        .perform()
    

    【讨论】:

    • 您好,感谢您的建议。虽然它确实加载了页面,但它是在同一个选项卡上进行的,而不是在新的选项卡上。
    【解决方案2】:

    经过更多的解析,我得出的结论是这个网站不提供右键单击,在新标签页上打开的选项,所以,即使 CONTROL + SHIFT kbd> + Click 应该可以工作,实际上,它的作用类似于左键单击,但不是因为代码,而是因为网络以这种方式响应此快捷方式。

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 2020-01-29
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多