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") 打开
但之后它什么也没做。
让我们开始清洁
- 安装Chrome browser
- 安装 Chromedriver
的匹配版本
Install the latest version of selenium using pip
pip install -U selenium
- 使用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()
过去几天我一直在用 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") 打开 但之后它什么也没做。
让我们开始清洁
- 安装Chrome browser
- 安装 Chromedriver 的匹配版本
Install the latest version of selenium using pip
pip install -U selenium
- 使用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()