简体   繁体   English

无法使用 Python Selenium 选择项目我做错了什么?

[英]Unable to select item using Python Selenium What am I doing wrong?

this is my first post on stack overflow and I did some searching but couldn't find the solution to my problem.这是我关于堆栈溢出的第一篇文章,我做了一些搜索,但找不到解决我的问题的方法。 Apologies if the answer to this question is obvious/posted elsewhere.如果这个问题的答案很明显/张贴在其他地方,我们深表歉意。

So, I'm an English teacher and I'm trying to make a small script that will copy feedback from my companies website and parse it into an excel spreadsheet.所以,我是一名英语老师,我正在尝试制作一个小脚本,该脚本将复制我公司网站的反馈并将其解析为 Excel 电子表格。 I've done the 'Automate the boring stuff with Python' course so I've had a little practice with Selenium, but I cannot get Selenium to select the username/password text boxes on my companies login page.我已经完成了“用 Python 自动化无聊的东西”课程,所以我对 Selenium 进行了一些练习,但是我无法让 Selenium 在我的公司登录页面上选择用户名/密码文本框。 I've tried tags, classes, CSS selectors, and XPath selectors.我尝试过标签、类、CSS 选择器和 XPath 选择器。 Nothing will work.什么都行不通。

To make sure I did a simple Google search using a CSS selector using the same setup and that worked fine.为了确保我使用 CSS 选择器使用相同的设置进行了简单的 Google 搜索,并且效果很好。 So perhaps it's the way the HTML is written?所以也许这就是 HTML 的编写方式?

Screenshot of HTML HTML 的屏幕截图

HTML: HTML:

<div data-v-e72e25c2="" class="username ipt-box"><img data-v-e72e25c2="" src="data:image/png;base64,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" alt="" class="head-icon"> <input data-v-e72e25c2="" type="text" placeholder="Email Address"> <span data-v-e72e25c2=""></span></div>

My code:我的代码:

from openpyxl import Workbook
wb = Workbook()
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter

import datetime
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common import keys
import requests
import time

#Fixed Variables
fileDirectory = "c:\\User\\Documents\\Coding\\feedbackReport"
os.chdir("c:\\Users\\Documents\\Coding\\feedbackReport")
scanWorkbook = os.listdir(fileDirectory)
dest_filename = 'Progess_Reports.xlsx'
workBookLoaded = 0
username = 'test@gmail.com'

#Detect if excel sheet exists, if no, create one, if yes, open it

if scanWorkbook.count(dest_filename) == 1:
    wb = load_workbook(filename = dest_filename)
    ws0 = wb.active
    workBookLoaded = 1
    print("Workbook loaded")

if workBookLoaded == 0:
    print("New WB Created")
    ws0 = wb.active
    ws0.title  = 'Reports'
    ws0['A2'] = "Session Time"
    ws0["B2"] = "Session Type"
    ws0["C2"] = "Student"
    ws0["D2"] = "Rating"
    ws0["E2"] = "Compliments"
    ws0["F2"] = "Suggestions"
    wb.save(filename = dest_filename)


#Access feedback section


browser = webdriver.Firefox()


#Manage the login page
browser.get('https://test.com')
time.sleep(8)
#usernameField = browser.find_element_by_css_selector("css=.username > input")
#usernameField = browser.find_elements_by_class_name('username')
#usernameField = browser.find_element_by_tag_name(r'input data-v-e72e25c2="" type="text" placeholder="Email Address"')
#usernameField = browser.find_element_by_xpath("xpath=//input[@type='text']")

usernameField.send_keys(username)




Can anyone confirm what I'm doing wrong?谁能确认我做错了什么? I've included a small number of my selection attempts for reference.我已经包含了一小部分我的选择尝试以供参考。 Also, any comments/suggestions regarding any aspect of my code are warmly welcomed.此外,热烈欢迎有关我的代码的任何方面的任何评论/建议。

Please let me know if any further information is required.如果需要任何进一步的信息,请告诉我。

看看这是否有效

driver.find_element_by_xpath("//input[@placeholder='Email Address']").send_keys(username)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM