posting_zon 3.86.799 → 3.88.799
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/posting_zon.rb +258 -132
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 865af3a099c02918e506d7954e20fb291edac1c448866a7477bb90c88f928516
|
4
|
+
data.tar.gz: 7800a12f7ad9c1af8a89e81cf614d280f97ee4f5b917a71be1e225bf171add0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a810cbc9ac581a0656fca5ee5080f28f05330cffbc5fa6848baac0b8342a5439953db3f243f85c2c021b413021ceb9eaa898b52428ed4100ef5a90824d61aca1
|
7
|
+
data.tar.gz: ef5190ea2582edc6478b250248fcb2c0f32b9cd238b8ed277624bbd9f009dd361e3591fb38762d4213a1f27a3251ebbfddf60964d06d5433c3002838281ea145
|
data/lib/posting_zon.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'glimmer-dsl-libui'
|
2
2
|
require 'selenium-webdriver'
|
3
|
-
require 'webdrivers'
|
3
|
+
#require 'webdrivers'
|
4
4
|
require 'iconv'
|
5
5
|
require 'nokogiri'
|
6
6
|
require 'open-uri'
|
@@ -28,23 +28,6 @@ using Rainbow
|
|
28
28
|
|
29
29
|
class Naver
|
30
30
|
def initialize
|
31
|
-
|
32
|
-
begin
|
33
|
-
puts "크롬을 최신 상태로 업데이트 해주세요"
|
34
|
-
puts "크롬 최신 상태가 아닐경우 오류가 발생될수있습니다."
|
35
|
-
Webdrivers.cache_time = 86_400 # 하루로 설정 (기본값: 86_400초)
|
36
|
-
Webdrivers.install_dir = "./" # 크롬드라이버를 수동으로 설치할 경로를 설정
|
37
|
-
Webdrivers::Chromedriver.update
|
38
|
-
puts "chromedriver 자동 다운로드 성공"
|
39
|
-
rescue => e
|
40
|
-
puts "chromedriver 자동 다운로드 실패: #{e.message}"
|
41
|
-
puts "폴더내 크롬드라이버를 사용합니다."
|
42
|
-
puts "크롬드라이버가 오래된 경우 오류 발생될 수 있으며, 만일 오류 발생시 아래 지침을 따라주세요."
|
43
|
-
puts "1.크롬 업데이트 2.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일을 열어 드라이버를 교체하세요."
|
44
|
-
chromedriver_path = './chromedriver.exe' # 수동 경로를 인스턴스 변수로 설정
|
45
|
-
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
46
|
-
end
|
47
|
-
|
48
31
|
end
|
49
32
|
|
50
33
|
|
@@ -67,9 +50,20 @@ class Naver
|
|
67
50
|
FileUtils.mkdir_p(board_cookie_dir) unless File.exist?(board_cookie_dir)
|
68
51
|
if proxy == ''
|
69
52
|
begin
|
53
|
+
begin
|
54
|
+
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
55
|
+
rescue => e
|
56
|
+
puts "chromedriver 버전 불일치!!"
|
57
|
+
puts "아래 지침을 따라주세요."
|
58
|
+
puts "1.프로그램 종료!"
|
59
|
+
puts "2.크롬 업데이트!"
|
60
|
+
puts "3.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일 실행"
|
61
|
+
puts "4.안내된 방식으로 크롬 드라이버 교체"
|
62
|
+
puts "5.재 시작"
|
63
|
+
exit 1
|
64
|
+
end
|
70
65
|
options = Selenium::WebDriver::Chrome::Options.new
|
71
66
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
72
|
-
|
73
67
|
options.add_argument('--disable-sync') # Chrome 동기화 비활성화
|
74
68
|
options.add_argument('--disable-popup-blocking') # 팝업 방지 (로그인 창이 뜨는 경우 대비)
|
75
69
|
options.add_argument('--no-default-browser-check')
|
@@ -105,7 +99,18 @@ class Naver
|
|
105
99
|
end
|
106
100
|
else
|
107
101
|
begin
|
108
|
-
|
102
|
+
begin
|
103
|
+
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
104
|
+
rescue => e
|
105
|
+
puts "chromedriver 버전 불일치!!"
|
106
|
+
puts "아래 지침을 따라주세요."
|
107
|
+
puts "1.프로그램 종료!"
|
108
|
+
puts "2.크롬 업데이트!"
|
109
|
+
puts "3.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일 실행"
|
110
|
+
puts "4.안내된 방식으로 크롬 드라이버 교체"
|
111
|
+
puts "5.재 시작"
|
112
|
+
exit 1
|
113
|
+
end
|
109
114
|
options = Selenium::WebDriver::Chrome::Options.new
|
110
115
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
111
116
|
|
@@ -144,7 +149,18 @@ class Naver
|
|
144
149
|
puts e
|
145
150
|
puts 'proxy error...'
|
146
151
|
begin
|
147
|
-
|
152
|
+
begin
|
153
|
+
Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
154
|
+
rescue => e
|
155
|
+
puts "chromedriver 버전 불일치!!"
|
156
|
+
puts "아래 지침을 따라주세요."
|
157
|
+
puts "1.프로그램 종료!"
|
158
|
+
puts "2.크롬 업데이트!"
|
159
|
+
puts "3.프로그램 폴더 내부에 ★tip★-시작시-크롬창이....파일 실행"
|
160
|
+
puts "4.안내된 방식으로 크롬 드라이버 교체"
|
161
|
+
puts "5.재 시작"
|
162
|
+
exit 1
|
163
|
+
end
|
148
164
|
options = Selenium::WebDriver::Chrome::Options.new
|
149
165
|
options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
|
150
166
|
|
@@ -2943,7 +2959,49 @@ login_url = option['login_url'].to_s
|
|
2943
2959
|
end
|
2944
2960
|
end
|
2945
2961
|
rescue
|
2946
|
-
|
2962
|
+
begin
|
2963
|
+
@driver.find_element(:xpath, '//*[@class="ray-id"]')
|
2964
|
+
|
2965
|
+
# 타임아웃을 3초로 설정
|
2966
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 120)
|
2967
|
+
# 요소가 나타날 때까지 30초 동안 기다립니다.
|
2968
|
+
wait.until { @driver.find_element(:xpath, '//*[@data-state="ready"]') }
|
2969
|
+
sleep(1)
|
2970
|
+
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
2971
|
+
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
2972
|
+
sleep(10)
|
2973
|
+
begin
|
2974
|
+
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
2975
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
2976
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
2977
|
+
@driver.window_handles.each do |handle|
|
2978
|
+
@driver.switch_to.window(handle)
|
2979
|
+
begin
|
2980
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
2981
|
+
@driver.close
|
2982
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
2983
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
2984
|
+
end
|
2985
|
+
end
|
2986
|
+
return 0
|
2987
|
+
@driver.quit
|
2988
|
+
rescue
|
2989
|
+
begin
|
2990
|
+
# 타임아웃을 77초로 설정
|
2991
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
2992
|
+
# 요소가 나타날 때까지 100초 동안 기다립니다.
|
2993
|
+
wait.until { @driver.find_element(:xpath, '//*[@data-state="solved"]') }
|
2994
|
+
sleep(1)
|
2995
|
+
@driver.find_element(:xpath, '//*[@data-state="solved"]').click
|
2996
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다.......'.green
|
2997
|
+
|
2998
|
+
sleep(5)
|
2999
|
+
rescue
|
3000
|
+
end
|
3001
|
+
end
|
3002
|
+
rescue
|
3003
|
+
puts '-[√] 캡챠 발생 없음.......'.green
|
3004
|
+
end
|
2947
3005
|
end
|
2948
3006
|
end
|
2949
3007
|
end
|
@@ -3771,30 +3829,37 @@ login_url = option['login_url'].to_s
|
|
3771
3829
|
begin
|
3772
3830
|
@driver.find_element(:xpath, '//*[@name="mb_password"]').send_keys(user_pw)
|
3773
3831
|
sleep(1)
|
3832
|
+
puts '-[√] 패스워드 1코드 타겟.......'.yellow
|
3774
3833
|
rescue
|
3775
3834
|
begin
|
3776
3835
|
@driver.find_element(:xpath, '//*[@id="outlogin_mb_password"]').send_keys(user_pw)
|
3777
3836
|
sleep(1)
|
3837
|
+
puts '-[√] 패스워드 2코드 타겟.......'.yellow
|
3778
3838
|
rescue
|
3779
3839
|
begin
|
3780
3840
|
@driver.find_element(:xpath, '//*[@placeholder="비밀번호"]').send_keys(user_pw)
|
3781
3841
|
sleep(1)
|
3842
|
+
puts '-[√] 패스워드 3코드 타겟.......'.yellow
|
3782
3843
|
rescue
|
3783
3844
|
begin
|
3784
3845
|
@driver.find_element(:xpath, '//*[@id="login_pw"]').send_keys(user_pw)
|
3785
3846
|
sleep(1)
|
3847
|
+
puts '-[√] 패스워드 4코드 타겟.......'.yellow
|
3786
3848
|
rescue
|
3787
3849
|
begin
|
3788
3850
|
@driver.find_element(:xpath, '//*[@placeholder="Password"]').send_keys(user_pw)
|
3789
3851
|
sleep(1)
|
3852
|
+
puts '-[√] 패스워드 5코드 타겟.......'.yellow
|
3790
3853
|
rescue
|
3791
3854
|
begin
|
3792
3855
|
@driver.find_element(:xpath, '//*[@id="mb_password"]').send_keys(user_pw)
|
3793
3856
|
sleep(1)
|
3857
|
+
puts '-[√] 패스워드 6코드 타겟.......'.yellow
|
3794
3858
|
rescue
|
3795
3859
|
begin
|
3796
3860
|
@driver.find_element(:xpath, '//*[@name="password"]').send_keys(user_pw)
|
3797
3861
|
sleep(1)
|
3862
|
+
puts '-[√] 패스워드 7코드 타겟.......'.yellow
|
3798
3863
|
rescue
|
3799
3864
|
begin
|
3800
3865
|
@driver.find_element(:xpath, '//*[@title="비밀번호"]').send_keys(user_pw)
|
@@ -3848,8 +3913,13 @@ login_url = option['login_url'].to_s
|
|
3848
3913
|
@driver.find_element(:xpath, '//*[@fw-label="패스워드"]').send_keys(user_pw)
|
3849
3914
|
sleep(1)
|
3850
3915
|
rescue
|
3851
|
-
|
3852
|
-
|
3916
|
+
begin
|
3917
|
+
@driver.find_element(:xpath, '//*[@id="login_mb_password2"]').send_keys(user_pw)
|
3918
|
+
sleep(1)
|
3919
|
+
rescue
|
3920
|
+
|
3921
|
+
@driver.action.key_down(:tab).key_up(:tab).perform #x탭
|
3922
|
+
end
|
3853
3923
|
end
|
3854
3924
|
end
|
3855
3925
|
end
|
@@ -3964,12 +4034,18 @@ login_url = option['login_url'].to_s
|
|
3964
4034
|
rescue
|
3965
4035
|
begin
|
3966
4036
|
@driver.find_element(:xpath, '//*[@id="um-submit-btn"]').click
|
3967
|
-
puts '-[√] 로그인 버튼 코드
|
4037
|
+
puts '-[√] 로그인 버튼 코드 16 타겟.......'.cyan
|
3968
4038
|
sleep(3)
|
3969
4039
|
rescue
|
3970
|
-
|
3971
|
-
|
3972
|
-
|
4040
|
+
begin
|
4041
|
+
@driver.find_element(:xpath, '//*[@class="left_login_box"]//*[@class="left_login_btn"]').click
|
4042
|
+
puts '-[√] 로그인 버튼 코드 17 타겟.......'.cyan
|
4043
|
+
sleep(3)
|
4044
|
+
rescue
|
4045
|
+
|
4046
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
4047
|
+
sleep(3)
|
4048
|
+
end
|
3973
4049
|
end
|
3974
4050
|
end
|
3975
4051
|
end
|
@@ -4729,6 +4805,14 @@ post_url = option['post_url'].to_s
|
|
4729
4805
|
rescue
|
4730
4806
|
end
|
4731
4807
|
|
4808
|
+
begin
|
4809
|
+
chat_box = @driver.find_element(:xpath, '//*[@class="left_chat_box"]')
|
4810
|
+
@driver.execute_script("arguments[0].remove();", chat_box)
|
4811
|
+
|
4812
|
+
sleep(1)
|
4813
|
+
rescue
|
4814
|
+
end
|
4815
|
+
|
4732
4816
|
end
|
4733
4817
|
|
4734
4818
|
|
@@ -6853,7 +6937,16 @@ begin
|
|
6853
6937
|
puts '-[√] HTML 코드 32 code.......'.yellow
|
6854
6938
|
sleep(1)
|
6855
6939
|
rescue
|
6856
|
-
|
6940
|
+
begin
|
6941
|
+
html_bb = @driver.find_element(:xpath, '//*[@class="note-btn btn-codeview note-codeview-keep"]')
|
6942
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", html_bb)
|
6943
|
+
sleep(1)
|
6944
|
+
html_bb = @driver.find_element(:xpath, '//*[@class="note-btn btn-codeview note-codeview-keep"]').click
|
6945
|
+
puts '-[√] HTML 코드 32 code.......'.yellow
|
6946
|
+
sleep(1)
|
6947
|
+
rescue
|
6948
|
+
|
6949
|
+
end
|
6857
6950
|
end
|
6858
6951
|
end
|
6859
6952
|
end
|
@@ -7187,7 +7280,14 @@ rescue
|
|
7187
7280
|
sleep(1)
|
7188
7281
|
puts '내용 항목 코드 타겟 48.......'.red
|
7189
7282
|
rescue
|
7190
|
-
|
7283
|
+
begin
|
7284
|
+
textarea = @driver.find_element(:id, 'kboard_content')
|
7285
|
+
@driver.execute_script("arguments[0].scrollIntoView(true);", textarea)
|
7286
|
+
textarea.click
|
7287
|
+
|
7288
|
+
rescue
|
7289
|
+
|
7290
|
+
end
|
7191
7291
|
end
|
7192
7292
|
end
|
7193
7293
|
end
|
@@ -8250,7 +8350,6 @@ if check_captcha == 1
|
|
8250
8350
|
# 요소가 나타날 때까지 30초 동안 기다립니다.
|
8251
8351
|
wait.until { @driver.find_element(:xpath, '//*[@data-state="ready"]') }
|
8252
8352
|
sleep(1)
|
8253
|
-
|
8254
8353
|
el_ready = @driver.find_element(:xpath, '//*[@data-state="ready"]')
|
8255
8354
|
@driver.action.move_to(el_ready).perform
|
8256
8355
|
sleep(1)
|
@@ -10023,12 +10122,17 @@ rescue
|
|
10023
10122
|
rescue
|
10024
10123
|
begin
|
10025
10124
|
ss_button = @driver.find_element(:xpath, '//*[@type="submit"]')
|
10125
|
+
if ss_button.attribute("class") == "upload_btn1"
|
10126
|
+
raise
|
10127
|
+
end
|
10128
|
+
|
10026
10129
|
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10027
10130
|
sleep(1)
|
10028
10131
|
|
10029
|
-
|
10132
|
+
ss_button.click
|
10030
10133
|
puts '-[√] 등록을 24번 코드로 시도하였습니다.......'.magenta
|
10031
10134
|
sleep(5)
|
10135
|
+
|
10032
10136
|
|
10033
10137
|
rescue
|
10034
10138
|
begin
|
@@ -10191,210 +10295,232 @@ rescue
|
|
10191
10295
|
sleep(5)
|
10192
10296
|
|
10193
10297
|
rescue
|
10194
|
-
########─────────────────────────────▼▼▼▼▼▼▼ 등록버튼 2차 시도 ▼▼▼▼▼▼▼──────────────────────────────#######
|
10195
|
-
begin
|
10196
|
-
puts '-[√] 등록 버튼 코드 탐색에 실패하였습니다.......'.magenta
|
10197
|
-
puts '-[√] 다른 방법으로 등록을 시도 합니다.......'.magenta
|
10198
|
-
|
10199
|
-
sleep(1)
|
10200
|
-
@driver.find_element(:xpath, '//*[@id="wr_subject"]').send_keys()
|
10201
|
-
sleep(1)
|
10202
|
-
@driver.find_element(:xpath, '//*[@id="wr_subject"]').click
|
10203
|
-
sleep(1)
|
10204
|
-
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10205
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10206
|
-
sleep(5)
|
10207
|
-
rescue
|
10208
10298
|
begin
|
10209
|
-
|
10210
|
-
|
10211
|
-
|
10299
|
+
ss_button = @driver.find_element(:xpath, '//*[@class="btn2_1"]')
|
10300
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10301
|
+
sleep(1)
|
10302
|
+
|
10303
|
+
ss_button = @driver.find_element(:xpath, '//*[@class="btn2_1"]').click
|
10304
|
+
puts '-[√] 등록을 39번 코드로 시도하였습니다.......'.magenta
|
10305
|
+
sleep(5)
|
10306
|
+
|
10307
|
+
rescue
|
10308
|
+
begin
|
10309
|
+
ss_button = @driver.find_element(:xpath, '//*[@class="pro-btn large _write"]')
|
10310
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
|
10212
10311
|
sleep(1)
|
10213
|
-
|
10214
|
-
|
10312
|
+
|
10313
|
+
ss_button = @driver.find_element(:xpath, '//*[@class="pro-btn large _write"]').click
|
10314
|
+
puts '-[√] 등록을 39번 코드로 시도하였습니다.......'.magenta
|
10215
10315
|
sleep(5)
|
10216
|
-
|
10217
|
-
|
10218
|
-
|
10219
|
-
sleep(1)
|
10220
|
-
@driver.find_element(:xpath, '//*[@name="subject"]').click
|
10221
|
-
sleep(1)
|
10222
|
-
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10223
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10224
|
-
sleep(5)
|
10225
|
-
rescue
|
10316
|
+
|
10317
|
+
rescue
|
10318
|
+
########─────────────────────────────▼▼▼▼▼▼▼ 등록버튼 2차 시도 ▼▼▼▼▼▼▼──────────────────────────────#######
|
10226
10319
|
begin
|
10227
|
-
|
10320
|
+
puts '-[√] 등록 버튼 코드 탐색에 실패하였습니다.......'.magenta
|
10321
|
+
puts '-[√] 다른 방법으로 등록을 시도 합니다.......'.magenta
|
10322
|
+
|
10228
10323
|
sleep(1)
|
10229
|
-
@driver.find_element(:xpath, '//*[@
|
10324
|
+
@driver.find_element(:xpath, '//*[@id="wr_subject"]').send_keys()
|
10325
|
+
sleep(1)
|
10326
|
+
@driver.find_element(:xpath, '//*[@id="wr_subject"]').click
|
10230
10327
|
sleep(1)
|
10231
10328
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10232
10329
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10233
10330
|
sleep(5)
|
10234
|
-
rescue
|
10235
|
-
begin
|
10236
|
-
@driver.find_element(:xpath, '//*[@id="wr_title"]').send_keys()
|
10237
|
-
sleep(1)
|
10238
|
-
@driver.find_element(:xpath, '//*[@id="wr_title"]').click
|
10239
|
-
sleep(1)
|
10240
|
-
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10241
|
-
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10242
|
-
sleep(5)
|
10243
10331
|
rescue
|
10244
10332
|
begin
|
10245
|
-
@driver.find_element(:xpath, '//*[@
|
10333
|
+
@driver.find_element(:xpath, '//*[@fw-label="제목"]').send_keys()
|
10246
10334
|
sleep(1)
|
10247
|
-
@driver.find_element(:xpath, '//*[@
|
10335
|
+
@driver.find_element(:xpath, '//*[@fw-label="제목"]').click
|
10248
10336
|
sleep(1)
|
10249
10337
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10250
10338
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10251
10339
|
sleep(5)
|
10252
10340
|
rescue
|
10253
10341
|
begin
|
10254
|
-
@driver.find_element(:xpath, '//*[@
|
10342
|
+
@driver.find_element(:xpath, '//*[@name="subject"]').send_keys()
|
10255
10343
|
sleep(1)
|
10256
|
-
@driver.find_element(:xpath, '//*[@
|
10344
|
+
@driver.find_element(:xpath, '//*[@name="subject"]').click
|
10257
10345
|
sleep(1)
|
10258
10346
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10259
10347
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10260
10348
|
sleep(5)
|
10261
10349
|
rescue
|
10262
10350
|
begin
|
10263
|
-
@driver.find_element(:xpath, '//*[@
|
10351
|
+
@driver.find_element(:xpath, '//*[@name="title"]').send_keys()
|
10264
10352
|
sleep(1)
|
10265
|
-
@driver.find_element(:xpath, '//*[@
|
10353
|
+
@driver.find_element(:xpath, '//*[@name="title"]').click
|
10266
10354
|
sleep(1)
|
10267
10355
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10268
10356
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10269
10357
|
sleep(5)
|
10270
10358
|
rescue
|
10271
10359
|
begin
|
10272
|
-
@driver.find_element(:xpath, '//*[@
|
10360
|
+
@driver.find_element(:xpath, '//*[@id="wr_title"]').send_keys()
|
10273
10361
|
sleep(1)
|
10274
|
-
@driver.find_element(:xpath, '//*[@
|
10362
|
+
@driver.find_element(:xpath, '//*[@id="wr_title"]').click
|
10275
10363
|
sleep(1)
|
10276
10364
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10277
10365
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10278
10366
|
sleep(5)
|
10279
10367
|
rescue
|
10280
10368
|
begin
|
10281
|
-
@driver.find_element(:xpath, '//*[@
|
10369
|
+
@driver.find_element(:xpath, '//*[@id="title"]').send_keys()
|
10282
10370
|
sleep(1)
|
10283
|
-
@driver.find_element(:xpath, '//*[@
|
10371
|
+
@driver.find_element(:xpath, '//*[@id="title"]').click
|
10284
10372
|
sleep(1)
|
10285
10373
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10286
10374
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10287
10375
|
sleep(5)
|
10288
10376
|
rescue
|
10289
10377
|
begin
|
10290
|
-
@driver.find_element(:xpath, '//*[@
|
10378
|
+
@driver.find_element(:xpath, '//*[@id="postTitle"]').send_keys()
|
10291
10379
|
sleep(1)
|
10292
|
-
@driver.find_element(:xpath, '//*[@
|
10380
|
+
@driver.find_element(:xpath, '//*[@id="postTitle"]').click
|
10293
10381
|
sleep(1)
|
10294
10382
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10295
10383
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10296
10384
|
sleep(5)
|
10297
10385
|
rescue
|
10298
10386
|
begin
|
10299
|
-
@driver.find_element(:xpath, '//*[@
|
10387
|
+
@driver.find_element(:xpath, '//*[@title="input"]').send_keys()
|
10300
10388
|
sleep(1)
|
10301
|
-
@driver.find_element(:xpath, '//*[@
|
10389
|
+
@driver.find_element(:xpath, '//*[@title="input"]').click
|
10302
10390
|
sleep(1)
|
10303
10391
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10304
10392
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10305
10393
|
sleep(5)
|
10306
10394
|
rescue
|
10307
10395
|
begin
|
10308
|
-
@driver.find_element(:xpath, '//*[@
|
10396
|
+
@driver.find_element(:xpath, '//*[@name="wr_subject"]').send_keys()
|
10309
10397
|
sleep(1)
|
10310
|
-
@driver.find_element(:xpath, '//*[@
|
10398
|
+
@driver.find_element(:xpath, '//*[@name="wr_subject"]').click
|
10311
10399
|
sleep(1)
|
10312
10400
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10313
10401
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10314
10402
|
sleep(5)
|
10315
10403
|
rescue
|
10316
10404
|
begin
|
10317
|
-
@driver.find_element(:xpath, '//*[@
|
10405
|
+
@driver.find_element(:xpath, '//*[@name="post_title"]').send_keys()
|
10318
10406
|
sleep(1)
|
10319
|
-
@driver.find_element(:xpath, '//*[@
|
10407
|
+
@driver.find_element(:xpath, '//*[@name="post_title"]').click
|
10320
10408
|
sleep(1)
|
10321
10409
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10322
10410
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10323
10411
|
sleep(5)
|
10324
10412
|
rescue
|
10325
10413
|
begin
|
10326
|
-
@driver.find_element(:xpath, '//*[@
|
10414
|
+
@driver.find_element(:xpath, '//*[@title="제목"]').send_keys()
|
10327
10415
|
sleep(1)
|
10328
|
-
@driver.find_element(:xpath, '//*[@
|
10416
|
+
@driver.find_element(:xpath, '//*[@title="제목"]').click
|
10329
10417
|
sleep(1)
|
10330
10418
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10331
10419
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10332
10420
|
sleep(5)
|
10333
10421
|
rescue
|
10334
10422
|
begin
|
10335
|
-
@driver.find_element(:xpath, '//*[@
|
10423
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목을 입력하세요"]').send_keys()
|
10336
10424
|
sleep(1)
|
10337
|
-
@driver.find_element(:xpath, '//*[@
|
10425
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목을 입력하세요"]').click
|
10338
10426
|
sleep(1)
|
10339
10427
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10340
10428
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10341
10429
|
sleep(5)
|
10342
10430
|
rescue
|
10343
10431
|
begin
|
10344
|
-
@driver.find_element(:xpath, '//*[@
|
10432
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목"]').send_keys()
|
10345
10433
|
sleep(1)
|
10346
|
-
@driver.find_element(:xpath, '//*[@
|
10434
|
+
@driver.find_element(:xpath, '//*[@placeholder="제목"]').click
|
10347
10435
|
sleep(1)
|
10348
10436
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10349
10437
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10350
10438
|
sleep(5)
|
10351
|
-
|
10352
10439
|
rescue
|
10353
10440
|
begin
|
10354
|
-
@driver.find_element(:xpath, '//*[@
|
10441
|
+
@driver.find_element(:xpath, '//*[@hname="제목"]').send_keys()
|
10355
10442
|
sleep(1)
|
10356
|
-
@driver.find_element(:xpath, '//*[@
|
10443
|
+
@driver.find_element(:xpath, '//*[@hname="제목"]').click
|
10357
10444
|
sleep(1)
|
10358
10445
|
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10359
10446
|
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10360
10447
|
sleep(5)
|
10361
|
-
|
10362
|
-
|
10363
|
-
|
10364
|
-
|
10365
|
-
|
10366
|
-
|
10367
|
-
@driver.
|
10448
|
+
rescue
|
10449
|
+
begin
|
10450
|
+
@driver.find_element(:xpath, '//*[@id="post_subject"]').send_keys()
|
10451
|
+
sleep(1)
|
10452
|
+
@driver.find_element(:xpath, '//*[@id="post_subject"]').click
|
10453
|
+
sleep(1)
|
10454
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10455
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10456
|
+
sleep(5)
|
10457
|
+
rescue
|
10368
10458
|
begin
|
10369
|
-
|
10370
|
-
|
10371
|
-
|
10372
|
-
|
10373
|
-
|
10374
|
-
|
10375
|
-
|
10376
|
-
|
10377
|
-
|
10378
|
-
|
10459
|
+
@driver.find_element(:xpath, '//*[@id="search_bar"]').send_keys()
|
10460
|
+
sleep(1)
|
10461
|
+
@driver.find_element(:xpath, '//*[@id="search_bar"]').click
|
10462
|
+
sleep(1)
|
10463
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10464
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10465
|
+
sleep(5)
|
10466
|
+
rescue
|
10467
|
+
begin
|
10468
|
+
@driver.find_element(:xpath, '//*[@name="SUBJECT"]').send_keys()
|
10469
|
+
sleep(1)
|
10470
|
+
@driver.find_element(:xpath, '//*[@name="SUBJECT"]').click
|
10471
|
+
sleep(1)
|
10472
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10473
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10474
|
+
sleep(5)
|
10475
|
+
|
10476
|
+
rescue
|
10477
|
+
begin
|
10478
|
+
@driver.find_element(:xpath, '//*[@name="rg_title"]').send_keys()
|
10479
|
+
sleep(1)
|
10480
|
+
@driver.find_element(:xpath, '//*[@name="rg_title"]').click
|
10481
|
+
sleep(1)
|
10482
|
+
@driver.action.key_down(:enter).key_up(:enter).perform #엔터
|
10483
|
+
puts '-[√] 등록을 시도하였습니다.......'.magenta
|
10484
|
+
sleep(5)
|
10485
|
+
|
10486
|
+
rescue => e
|
10487
|
+
puts '-[√] 등록 실패.......'.red
|
10488
|
+
puts '-[√] 로딩 및 코드인식 실패등 기타 이유로 다음 게시판 작업으로 이동합니다.......'.red
|
10489
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
10490
|
+
@driver.window_handles.each do |handle|
|
10491
|
+
@driver.switch_to.window(handle)
|
10492
|
+
begin
|
10493
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
10494
|
+
@driver.close
|
10495
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
10496
|
+
puts "크롬 브라우저 종료: #{e.message}"
|
10497
|
+
end
|
10498
|
+
end
|
10499
|
+
return 0
|
10500
|
+
@driver.quit
|
10501
|
+
end
|
10502
|
+
end
|
10503
|
+
end
|
10504
|
+
|
10505
|
+
end
|
10506
|
+
end
|
10507
|
+
end
|
10379
10508
|
end
|
10380
|
-
|
10381
10509
|
end
|
10382
|
-
end
|
10383
|
-
end
|
10384
|
-
end
|
10510
|
+
end
|
10511
|
+
end
|
10512
|
+
end
|
10385
10513
|
end
|
10386
|
-
end
|
10387
|
-
end
|
10388
|
-
end
|
10389
|
-
end
|
10390
|
-
end
|
10391
|
-
end
|
10392
|
-
end
|
10393
|
-
|
10394
|
-
end
|
10395
|
-
|
10396
|
-
end
|
10397
|
-
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 2차 시도 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10514
|
+
end
|
10515
|
+
end
|
10516
|
+
end
|
10517
|
+
end
|
10518
|
+
end
|
10519
|
+
end
|
10520
|
+
end
|
10521
|
+
########─────────────────────────────▲▲▲▲▲▲▲ 등록버튼 2차 시도 ▲▲▲▲▲▲▲──────────────────────────────#######
|
10522
|
+
end
|
10523
|
+
end
|
10398
10524
|
end
|
10399
10525
|
end
|
10400
10526
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.88.799
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-05-
|
10
|
+
date: 2025-05-12 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: posting app
|
13
13
|
email: mymin26@naver.com
|