-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathselenium-peek.rb
92 lines (76 loc) · 1.93 KB
/
selenium-peek.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
require 'selenium-webdriver'
players = [
{
driver: Selenium::WebDriver.for(:chrome),
name: "Player 1",
waitt: 0,
answers: [
'At the park',
'Entering something to a textbox on my phone',
'My dog',
'Miau!',
'Woof!',
'I said: "Well. That one did not make any sense, but often times (and with more players than just 2), these stories make just enough sense to cause amusement!"'
]
},
{
driver: Selenium::WebDriver.for(:chrome),
name: "Player 2",
waitt: 1,
answers: [
'At home',
'Not much',
'No one',
'Is there someone?',
'No!',
'I said: "Well. That one did not make any sense, but often times (and with more players than just 2), these stories make just enough sense to cause amusement!"'
]
}
]
players.each do |player|
player[:driver].get 'https://localhost'
end
sleep 5
def play(player)
sleep Random.rand(20) * 0.1
sleep player[:waitt]
driver = player[:driver]
namebox = player[:driver].find_element(id: 'nameinput')
avatarbox = player[:driver].find_element(id: 'avatarinput')
ok = player[:driver].find_element(class: 'v-btn')
player[:name].split('').each do |letter|
namebox.send_keys letter
sleep 0.01 * Random.rand(10)
end
sleep 1
avatarbox.click
avatar = driver.find_element(id: 'avatar-fa-running')
sleep 1
avatar.click
sleep 0.4
ok.click
sleep 1
textbox = driver.find_element(id: 'questinput')
player[:answers].each do |answer|
wait = Selenium::WebDriver::Wait.new(:timeout => 30)
wait.until { textbox.enabled? }
answer.split('').each do |letter|
textbox.send_keys letter
sleep 0.00001 * Random.rand(100)
end
sleep 0.5
textbox.send_keys :enter
sleep 0.5
end
end
threads = []
players.each do |player|
threads << Thread.new { play player }
end
threads.each do |thread|
thread.join
end
sleep 10
players.each do |player|
player[:driver].quit
end