PYTHON: xPath 不会定位和键入字段。使用 selenium、Webdriver 等

PYTHON: xPath won't locate and type in a field. Using selenium, Webdriver, etc

过去几天我一直在用 selenium 研究 xPath,但未能找到我的问题的答案。我遵循了一些关于如何在网页上使用 'inspect' 定位文本字段然后 send_keys() 定位到该字段的指南。但我发现了一些错误:

import webbrowser
from selenium import webdriver
driver = webdriver.Chrome

driver = webdriver.Chrome
webbrowser.open("https://www.facebook.com/")

id_box = driver.find_element_by_xpath('//*[@id="email"]')
id_box.send_keys('username')

它正在响应此错误:

Traceback (most recent call last):
File "/Users/****/Library/Preferences/PyCharmCE2019.1/scratches/scratch_11.py", line 21, in <module>
id_box = driver.find_element_by_xpath('//*[@id="email"]')
TypeError: find_element_by_xpath() missing 1 required positional argument: 'xpath'

我尝试将我的代码更改为:

id_box = driver.find_element_by_xpath(xpath='//*[@id="email"]')

但是它给了我这个错误:

    id_box = driver.find_element_by_xpath(xpath='//*[@id="email"]')
    TypeError: find_element_by_xpath() missing 1 required positional argument: 'self'

我已经尝试了我的小脑袋所能想到的一切,以及 google 等大脑袋所建议的一切。但它不会发送密钥或识别文本框。我也尝试过 find_element_by_id 或 find_element_by_name 等其他方法,但仍然没有成功。在此之前,我尝试执行 google 登录脚本,并产生了相同的结果。

(P.s) link 用 webbrowser.open("https://www.facebook.com") 打开 但之后它什么也没做。

让我们开始清洁

  1. 安装Chrome browser
  2. 安装 Chromedriver
  3. 的匹配版本
  4. Install the latest version of selenium using pip

    pip install -U selenium
    
  5. 使用Explicit Wait帮助Selenium定位元素

示例建议代码:

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

driver = webdriver.Chrome("c:\path\to\chromedriver.exe")
driver.maximize_window()
driver.get("https://facebook.com")

id_box = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id ='email']")))
id_box.send_keys("username")
driver.quit()