python-3.x - Selenium/Python:无法使用任何 find_element_by_* 方法找到元素
问题描述
我面临一个奇怪的挑战——可能与我对 html 的理解不足有关。
我需要从网站中提取一些数据。但是我不知何故无法通过登录步骤 - 尽管过去曾在其他几个此类应用程序中使用过类似的代码。我只是无法使用任何 get_element_by_*() 方法找到用户名或密码元素。在过去的 24 小时里,我一直在尝试各种事物并研究事物。我确信我在这里做的事情根本上是错误的——但不知道是什么。我有非常相似的代码,可以毫无问题地登录到不同的网站( http://courtbooking.bayclubs.com )。
帮助!我正在复制粘贴我的代码的相关部分
url = "https://www.ussquash.com/serve/?program=login"
inp_username = "my-username"
inp_password = "my-password"
try:
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
except:
print("No web driver")
exit()
try:
driver.get(url)
except:
print("Could not load URL")
exit()
time.sleep(wait_time_in_seconds)
try:
#user = driver.find_element_by_id("login")
user = driver.find_element_by_name("username")
except Exception as e:
print("No username element, error {}".format(e))
exit()
else:
print("Username element found")
try:
password = driver.find_element_by_id("loginpass")
except Exception as e:
print("No password element, error {}".format(e))
exit()
else:
print("Password element found")
try:
signon_button = WebDriverWait(driver, wait_time_in_seconds).until(
EC.presence_of_element_located((By.CLASS_NAME, "btn btn-primary login-btn")))
except:
print("No signon element")
exit()
else:
print("Signon element found")
print("Logging in with username: %s, password: %s", inp_username, inp_password)
user.clear()
user.send_keys(inp_username)
password.clear()
password.send_keys(inp_password)
signon_button.click()
解决方案
推荐阅读
- r - 离散向量的直方图?
- matplotlib - f,轴 = plt.subplots() 和 sns.distplot
- php - Mod-Rewrites 在 PHP 的 htaccess 中不起作用
- r - 如何替换文本和标点符号
- python-3.x - 虽然不进入下一个块
- linux - 命令运行bash重启vscode?
- python - 如何将一些 CSV 文件合并到一个 DataFrame 中?
- elasticsearch - Elastic 中的访问控制 - 缺少 REST 请求的身份验证凭据
- javascript - 如何使用 react js context api 正确存储和检索数据?我的代码没有按预期工作
- ios - 如何在 Xcode 中更改默认 ViewController 类声明