如何使用Selenium Sendkeys在键入的字符之间进行延迟

2024-06-28 10:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我用一个动作链输入一个输入,但我意识到我得到了重复的字符,这是因为我没有延迟吗?我怎样才能解决这个问题?例如,看看这个:

big_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus tincidunt porta ex, vitae luctus arcu pharetra quis. Nullam id congue risus, at lacinia nulla. Vestibulum at nunc ut ante fermentum placerat sit amet non libero. In augue ipsum, commodo a accumsan a, tincidunt sit amet magna. Nullam vel risus vel sem auctor pharetra. Sed euismod porta metus vel imperdiet. Etiam ultricies tempor nulla, vel scelerisque ipsum elementum vel. Curabitur ultricies orci non lectus tempor, nec malesuada leo ornare. Curabitur vehicula eros sit amet tincidunt pharetra. Curabitur dictum euismod porta. Pellentesque congue accumsan rutrum. Praesent a lectus sit amet odio auctor sagittis. Phasellus eu posuere urna. Donec fermentum diam eu est blandit auctor. Aliquam mauris dolor, aliquam eget lacus quis, consequat lobortis massa. Integer suscipit elementum ornare. Fusce dapibus id lorem vitae vestibulum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed ullamcorper mollis risus, et hendrerit tellus interdum in. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae"    
big_text2 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In tempor dolor sed turpis volutpat, et dictum risus tempus. Fusce tristique congue purus, vitae sollicitudin ligula auctor eu. Donec dolor leo, aliquet in interdum id, lobortis nec nisi. Pellentesque ornare nunc semper arcu dapibus finibus. Pellentesque gravida pretium placerat. Fusce vulputate lectus eu arcu pretium vestibulum. Nam ac est eget sem blandit rhoncus. Nulla viverra sodales accumsan. Nunc mollis molestie libero, in interdum massa dictum vel. In non interdum nisl. Donec libero mi, condimentum id odio id, posuere suscipit orci. Curabitur ultrices turpis id neque aliquet, id luctus justo tristique. Integer finibus, tellus lobortis ultricies convallis, elit diam semper nisl, eu commodo mi quam vel lacus. Proin porta tortor facilisis ante sagittis tristique. Duis erat nisl, sollicitudin ut mollis vulputate, rhoncus nec sapien. Aliquam laoreet enim eros, ac rutrum lorem aliquam vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer cursus quam sit amet ligula bibendum, id tincidunt arcu convallis. Integer fermentum justo velit, eget porta diam venenatis ut. Etiam dignissim eu felis eget rutrum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque odio massa, tincidunt nec ex sed, sagittis rutrum neque. Donec sit amet magna tortor. Etiam placerat, eros venenatis condimentum pellentesque, nibh erat ullamcorper dui, a bibendum augue ligula at leo."
send_js_command.send_keys(big_text, Keys.ENTER)                                           
send_js_command.pause(5)                      
send_js_command.send_keys(big_text2, Keys.ENTER)

我注意到,有时他没有输入第一个文本并开始第二个文本,或者他在第一个文本中写了一些重复的字符,然后转到第二个文本,我如何解决这个问题?sendkeys太慢了我还要再慢一点吗

我怎样才能解决这个问题,但反过来又使我的脚本更快呢?我考虑过给Ctrl c+Ctrl v,但是文本在一个变量中,我将如何给Ctrl+c

注意上面的代码只是一个小例子,在我的代码中就是这样。由于某些原因,我需要使用sendkeys,因此我不能使用execute_script或类似的东西,我唯一的选择是使用sendkeys


Tags: in文本sendidetbigipsumeu
1条回答
网友
1楼 · 发布于 2024-06-28 10:30:55

好的,我们理解您不想使用execute_script,而是想坚持使用send_keys

这可以通过CTRL + c复制和CTRL + v粘贴来实现

下面我们可以在Selenium中模拟同样的情况:(我以谷歌搜索栏为例,pyperclipcopy string to clipboard

driver.get("https://www.google.com")
big_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus tincidunt porta ex, vitae luctus arcu pharetra quis. Nullam id congue risus, at lacinia nulla. Vestibulum at nunc ut ante fermentum placerat sit amet non libero. In augue ipsum, commodo a accumsan a, tincidunt sit amet magna. Nullam vel risus vel sem auctor pharetra. Sed euismod porta metus vel imperdiet. Etiam ultricies tempor nulla, vel scelerisque ipsum elementum vel. Curabitur ultricies orci non lectus tempor, nec malesuada leo ornare. Curabitur vehicula eros sit amet tincidunt pharetra. Curabitur dictum euismod porta. Pellentesque congue accumsan rutrum. Praesent a lectus sit amet odio auctor sagittis. Phasellus eu posuere urna. Donec fermentum diam eu est blandit auctor. Aliquam mauris dolor, aliquam eget lacus quis, consequat lobortis massa. Integer suscipit elementum ornare. Fusce dapibus id lorem vitae vestibulum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed ullamcorper mollis risus, et hendrerit tellus interdum in. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae"
time.sleep(2)
pyperclip.copy(big_text)
time.sleep(2)
wait.until(EC.element_to_be_clickable((By.NAME, "q"))).send_keys(Keys.CONTROL + "v")

相关问题 更多 >