Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Selenium导航到文本框后填写文本框?_Python_Selenium - Fatal编程技术网

Python 使用Selenium导航到文本框后填写文本框?

Python 使用Selenium导航到文本框后填写文本框?,python,selenium,Python,Selenium,我已经设法编写了一个程序,可以导航到所需的网站,并点击我想要填写的第一个文本框。我遇到的问题是,我使用的send_keys方法没有用“Testing”填写所需的文本框,我收到了以下错误: AttributeError: 'NoneType' object has no attribute 'find_elements_by_xpath' 以下是迄今为止的代码: import selenium from selenium.webdriver.common.by import By from se

我已经设法编写了一个程序,可以导航到所需的网站,并点击我想要填写的第一个文本框。我遇到的问题是,我使用的send_keys方法没有用“Testing”填写所需的文本框,我收到了以下错误:

AttributeError: 'NoneType' object has no attribute 'find_elements_by_xpath'
以下是迄今为止的代码:

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

driver = selenium.webdriver.Chrome(executable_path='path_to_chromedriver')


def get_url(url):
    driver.get(url)
    driver.maximize_window()
    Wait(driver, 30).until(expected_conditions.presence_of_element_located
                           ((By.ID, 'signup-button'))).click()


def fill_data():
    sign_up = Wait(driver, 30).until(expected_conditions.presence_of_element_located
                                     ((By.XPATH,
                                       '/html/body/onereg-app/div/onereg-form/div/div/form/section/section['
                                       '1]/onereg-alias-check/ '
                                       'fieldset/onereg-progress-meter/div[2]/div[2]/div/pos-input[1]'))).click()
    sign_up.send_keys('Testing')


get_url('https://www.mail.com/')
# Find the signup element
fill_data()

find_elements_by_xpath`返回所有匹配的元素,这是一个列表,因此需要遍历并获取每个元素的文本属性

另外,在fill data方法中,您尝试为注册表单填充数据,因此您需要标识该表单上的所有元素,并使用表单和数据进行处理

填写电子邮件Id时xpath不正确,请更新xpath并重试

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By 
import time 
from selenium.webdriver.support.ui import WebDriverWait as Wait



# Open Chrome
driver = webdriver.Chrome(executable_path='path_to_chromedriver')


def get_url(url):
    driver.get(url)
    driver.maximize_window()



def fill_data():

    Wait(driver, 30).until(EC.element_to_be_clickable
                           ((By.ID, 'signup-button'))).click()

    inputBox = Wait(driver, 30).until(EC.visibility_of_element_located((By.XPATH, "/html/body/onereg-app/div/onereg-form/div/div/form/section/section[1]/onereg-alias-check/fieldset/onereg-progress-meter/div[2]/div[2]/div/pos-input[1]/input")))
    inputBox.send_keys('Testing')


get_url('https://www.mail.com/')
# Find the signup element
fill_data()

@现场狩猎:请接受此答案,确认后点击投票按钮