单击不适用于python硒

蟒蛇

我正在尝试创建一个机器人,该机器人将填写特定网站的注册表单。

网站详细信息-http://hacknyu.org/signup

码:

from selenium import webdriver
class HackNNYU(object):
    first_name = 'input[ng-model="credentials.first_name"]'
    last_name = 'input[ng-model="credentials.last_name"]'
    email = '.col-sm-12>input[ng-model="credentials.email"]'
    password = '.col-sm-12>input[ng-model="credentials.password"]'
    agree_checkbox = '.ng-binding>input[ng-model="checkModel"]'
    sign_up_button = 'div>button[type="submit"]'
    accept_button = 'button[ng-click="positive()"]'

def fill_up_hack_nyu():
    driver = webdriver.Firefox()
    driver.get('http://hacknyu.org/signup')
    driver.find_element_by_css_selector(HackNNYU.first_name).send_keys('Friday')
    driver.find_element_by_css_selector(HackNNYU.last_name).send_keys('Night')
    driver.execute_script("window.scrollTo(0, 300);")
    driver.find_element_by_css_selector(HackNNYU.email).send_keys('[email protected]')
    driver.find_element_by_css_selector(HackNNYU.password).send_keys('123456')
    driver.find_element_by_css_selector(HackNNYU.agree_checkbox).click()
    driver.find_element_by_css_selector(HackNNYU.accept_button).click()
    # driver.execute_script("window.scrollTo(0, 400);")
    driver.find_element_by_css_selector(HackNNYU.sign_up_button).click()
fill_up_hack_nyu()

问题

driver.find_element_by_css_selector(HackNNYU.sign_up_button).click()

主要问题在于这条线。手动单击signup button它可以正常工作,但是当我运行该程序时,我可以看到它正在单击,signup button但是此后什么也没有发生。谁能帮我为什么这不起作用?我只是想使用机器人注册一个活动。我将非常感谢您能提供的任何帮助。

错误

有时候我总是收到这个错误

selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (796.4000244140625, 45.399993896484375). Other element would receive the click
弗洛伦特·B。

该页面的顶部有一个标语,使自动滚动隐藏了“提交”按钮。要解决此问题,您可以定义滚动行为以改为在底部滚动。此外,您的脚本似乎没有正确单击应显示术语弹出窗口的复选框。

这是一个在hacknyu上创建新帐户的工作脚本:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# set the scrolling behavior to down
DesiredCapabilities.FIREFOX["elementScrollBehavior"] = 1

driver = webdriver.Firefox()
wait = WebDriverWait(driver, 10)

# load the page
driver.get("http://hacknyu.org/signup")

# get the form element
form = driver.find_element_by_css_selector("form[name='signupForm']")

# fill the fields
form.find_element_by_css_selector("input[name='firstName']").send_keys("myfirstname")
form.find_element_by_css_selector("input[name='lastName']").send_keys("mylastname")
form.find_element_by_css_selector("input[name='email']").send_keys("[email protected]")
form.find_element_by_css_selector("input[name='password']").send_keys("mypassword")

# click and accept terms
form.find_element_by_xpath("//input[@name='terms']/..").click()
wait.until(EC.presence_of_element_located((By.XPATH, "//button[.='Accept']"))).click()
wait.until_not(EC.presence_of_element_located((By.CSS_SELECTOR, ".modal")))

# click on submit
form.find_element_by_css_selector("button[type='submit']").click()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章