我想使用Selenium模拟人类输入,我已经为此编写了一个代码,但我不知道如何继续它。
我想让我的代码将lst的'thing1'元素输入变量elem
webelement,将列表的第二个元素输入变量elem2
webelement。现在,我不知道我该怎么做。我尝试了很多方法,但代码没有像预期的那样工作。任何想法都将受到高度赞赏。
lst = ['thing1', 'thing2']
dt = webdriver.Firefox()
dt.get('some url')
elem = dt.find_element_by_id('some id')
elem2 = dt.find_element_by_id('some id 2')
#Breaking elements into keystrokes
for i in lst:
for ii in i:
time.sleep(random.randint(1.10))
elem.send_keys(ii)
#What to do from now on?
答案 0 :(得分:2)
目前,您要将这两个文本都输入elem
元素。
您可以改为定义元素+文本对:
def human_type(element, text):
for char in text:
time.sleep(random.randint(1,10)) #fixed a . instead of a ,
element.send_keys(char)
pairs = [(elem, "thing1"), (elem2, "thing2")]
for element, text in pairs:
human_type(element, text)
您还可以使用zip()
制作pairs
列表:
lst = ['thing1', 'thing2']
elements = [elem, elem2]
pairs = zip(elements, lst)