我想用Selenium模拟人类打字,我已经为此写了一个代码,但我不知道如何继续。
我想让我的代码将列表的'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?
目前,您正在将这两个文本输入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)