我就能做这么多了,剩余真不知道怎么做

学习selenium第一天,下面是网址我自己只能写自己编的一个email和密码地址还有性别等等什么都是自己固定的,无法随机,不知道email还有性别出生日期在自动化的时候怎么做到随机选择一个,还有就是有没有人看看我地址那里19,20行到底对不对呀,为啥偶尔一次两次成功了,其余的时候都显示有问题

img

img


首先,让我们来解决随机输入的问题。要随机生成输入,您可以使用Python的内置random模块来生成随机的email地址和性别。下面是示例代码:

python
import random  
import string  
  
# 生成随机的email地址  
def generate_email():  
    # 生成随机的字符串  
    random_str = ''.join(random.choices(string.ascii_lowercase, k=5))  
    # 生成随机的邮箱地址  
    email = 'user' + random_str + '@example.com'  
    return email  
  
# 生成随机的性别  
def generate_gender():  
    if random.random() < 0.5:  
        gender = 'M'  
    else:  
        gender = 'F'  
    return gender
接下来,让我们来解决表单提交的问题。从您的代码中可以看出,您已经使用了Selenium的send_keys()方法将输入值硬编码到表单中。但是,更好的做法是使用Python的find_element()方法来定位表单元素,并使用send_keys()方法将随机生成的输入值发送到表单中。然后,使用submit()方法提交表单。下面是示例代码:

python
from selenium import webdriver  
import random  
import string  
  
# 生成随机的email地址和性别  
def generate_email():  
    # 生成随机的字符串  
    random_str = ''.join(random.choices(string.ascii_lowercase, k=5))  
    # 生成随机的邮箱地址  
    email = 'user' + random_str + '@example.com'  
    return email  
  
def generate_gender():  
    if random.random() < 0.5:  
        gender = 'M'  
    else:  
        gender = 'F'  
    return gender  
  
# 打开网站并随机填写表单  
driver = webdriver.Chrome()  
driver.get('https://www.example.com')  
email = generate_email()  
gender = generate_gender()  
# 定位表单元素并填写表单  
input_email = driver.find_element_by_name('email')  
input_email.send_keys(email)  
input_gender = driver.find_element_by_name('gender')  
input_gender.send_keys(gender)  
# 提交表单  
input_submit = driver.find_element_by_name('submit')  
input_submit.click()

我一般比较喜欢selenium结合javascript。你可以开浏览器的开发者工具研究一下网页的结构,通过selenium调用javascript直接设定表单、输入框的值。随机的话,javascript用Math.random()可生成一个[0,1)的随机数,然后作一个函数映射到性别、日期等。

Selenium调用javascript用driver.execute_javascript('console.log("Hello");')这样。