0

在此处输入图像描述

我正在尝试使用 selenium 在网站上自动登录。(Windows 10 64 位操作系统)

使用下面的代码我可以打开一个链接,但是一旦网页加载 get cmd 不会释放我的 python 解释器下一个 cmd:

browser.find_element_by_class_name('gb_g').click()

不运行。

我试图打开 google.com 但问题是一样的,我尝试了不同的浏览器它可以工作,但我的项目 URL 仅适用于 Internet Explorer。

我已尝试使用 64 位和 32 位驱动程序版本的 Internet Explorer

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

link = 'https://www.google.com/'
browser = webdriver.Ie(executable_path='S:\work\Automation\Elog\IEDriverServer.exe')
browser.get(link)
browser.find_element_by_class_name('gb_g').click()
4

1 回答 1

0

你需要考虑几件事情:

  • 如果您的用例是使用,您需要通过Class使用IEDriverServer.exe,如下所示:selenium.webdriver.ie.webdriver.WebDriver()

    webdriver.Ie(executable_path=r'S:\path\to\IEDriverServer.exe')
    

要将click()带有文本的元素作为Gmail,您必须诱导WebDriverWait并且element_to_be_clickable()您可以使用以下任一 Locator Strategies

  • 使用LINK_TEXT

    from selenium import webdriver
    
    browser = webdriver.Ie(executable_path=r'S:\work\Automation\Elog\IEDriverServer.exe')
    browser.get("https://www.google.com/")
    WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.LINK_TEXT, "Gmail"))).click()
    
  • 使用CSS_SELECTOR

    from selenium import webdriver
    
    browser = webdriver.Ie(executable_path=r'S:\work\Automation\Elog\IEDriverServer.exe')
    browser.get("https://www.google.com/")       
    WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a.gb_g[href*='com/mail/?tab']"))).click()
    
  • 使用XPATH

    from selenium import webdriver
    
    browser = webdriver.Ie(executable_path=r'S:\work\Automation\Elog\IEDriverServer.exe')
    browser.get("https://www.google.com/")
    WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.XPATH,"//a[text()='Gmail']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

更新(来自@rahuldesai 的评论)

通过上述配置并使用32 位 IEDriverServer二进制文​​件,一些问题得到了解决。

于 2019-12-20T11:37:46.210 回答