posting_zon 0.0.60 → 0.0.63

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/posting_zon.rb +431 -472
  3. metadata +2 -2
data/lib/posting_zon.rb CHANGED
@@ -31,6 +31,7 @@ class Naver
31
31
  def chrome_start(proxy)
32
32
  if proxy == ''
33
33
  begin
34
+
34
35
  Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
35
36
  options = Selenium::WebDriver::Chrome::Options.new
36
37
  options.add_extension('./crx/free.crx')
@@ -61,6 +62,7 @@ class Naver
61
62
 
62
63
  # Selenium 4에서는 'capabilities'만 사용하는 방식
63
64
  @driver = Selenium::WebDriver.for(:chrome, capabilities: [capabilities, options])
65
+
64
66
 
65
67
  @driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: function(){ return false; }});") # 셀레니움 감지 방지
66
68
 
@@ -388,7 +390,7 @@ sleep(2)
388
390
  # Alert 처리 부분
389
391
  begin
390
392
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
391
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
393
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
392
394
  alert.accept # 알림을 확인
393
395
  rescue
394
396
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -1484,29 +1486,20 @@ begin
1484
1486
  @driver.switch_to.default_content()
1485
1487
  #@driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
1486
1488
  el = @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
1487
- @driver.action.move_to(el).perform
1488
1489
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1489
1490
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1490
1491
  puts '-[√] 챕챠 코드 code 1.......'.red
1491
1492
  sleep(1)
1493
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1494
+ sleep(1)
1492
1495
  mouse_move_percentage(0.3,0.02)
1493
1496
  sleep(0.5)
1494
- left_click
1495
- sleep(1)
1496
- @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]').click
1497
+ left_click
1497
1498
  sleep(1)
1498
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1499
- #sleep(2)
1500
- #@driver.manage.window.maximize
1501
-
1502
-
1503
- el1 = @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
1504
- @driver.action.context_click(el1).perform
1499
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1500
+ @driver.action.context_click(el).perform #우 클릭
1505
1501
  sleep(1)
1506
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1507
- #key_down('shift')
1508
- #key_stroke('m')
1509
- #key_up('shift')
1502
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1510
1503
  sleep(1)
1511
1504
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1512
1505
  rescue
@@ -1514,29 +1507,20 @@ rescue
1514
1507
  @driver.switch_to.default_content()
1515
1508
  #@driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
1516
1509
  el = @driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
1517
- @driver.action.move_to(el).perform
1518
1510
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1519
1511
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1520
1512
  puts '-[√] 챕챠 코드 code 2.......'.red
1521
1513
  sleep(1)
1514
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1515
+ sleep(1)
1522
1516
  mouse_move_percentage(0.3,0.02)
1523
1517
  sleep(0.5)
1524
- left_click
1525
- sleep(1)
1526
- @driver.find_element(:xpath, '//*[@alt="자동등록방지"]').click
1518
+ left_click
1527
1519
  sleep(1)
1528
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1529
- #sleep(2)
1530
- #@driver.manage.window.maximize
1531
-
1532
-
1533
- el1 = @driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
1534
- @driver.action.context_click(el1).perform
1520
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1521
+ @driver.action.context_click(el).perform #우 클릭
1535
1522
  sleep(1)
1536
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1537
- #key_down('shift')
1538
- #key_stroke('m')
1539
- #key_up('shift')
1523
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1540
1524
  sleep(1)
1541
1525
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1542
1526
  rescue
@@ -1545,35 +1529,26 @@ rescue
1545
1529
  sleep(1)
1546
1530
  #@driver.find_element(:xpath, '//*[@id="captcha_img"]').send_keys(:tab)
1547
1531
  el = @driver.find_element(:xpath, '//*[@id="captcha_img"]')
1548
- @driver.action.move_to(el).perform
1549
1532
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1550
1533
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1551
1534
  puts '-[√] 챕챠 코드 code 3.......'.red
1552
1535
  sleep(1)
1553
- begin
1554
1536
  #요소 자체 제거 하기 기능
1555
1537
  chat_box = @driver.find_element(:xpath, '//*[@for="captcha_key"]')
1556
1538
  @driver.execute_script("arguments[0].remove();", chat_box)
1557
1539
  sleep(1)
1558
- rescue
1559
- end
1540
+
1541
+ sleep(1)
1542
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1543
+ sleep(1)
1560
1544
  mouse_move_percentage(0.3,0.02)
1561
1545
  sleep(0.5)
1562
- left_click
1546
+ left_click
1563
1547
  sleep(1)
1564
- @driver.find_element(:xpath, '//*[@id="captcha_img"]').click
1548
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1549
+ @driver.action.context_click(el).perform #우 클릭
1565
1550
  sleep(1)
1566
-
1567
-
1568
-
1569
-
1570
- el1 = @driver.find_element(:xpath, '//*[@id="captcha_img"]')
1571
- @driver.action.context_click(el1).perform
1572
- sleep(1)
1573
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1574
- #key_down('shift')
1575
- #key_stroke('m')
1576
- #key_up('shift')
1551
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1577
1552
  sleep(1)
1578
1553
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1579
1554
  rescue
@@ -1581,281 +1556,226 @@ rescue
1581
1556
  @driver.switch_to.default_content()
1582
1557
  #@driver.find_element(:xpath, '//*[@id="kcaptcha"]')
1583
1558
  el = @driver.find_element(:xpath, '//*[@id="kcaptcha"]')
1584
- @driver.action.move_to(el).perform
1585
1559
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1586
1560
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1587
1561
  puts '-[√] 챕챠 코드 code 4.......'.red
1588
1562
  sleep(1)
1563
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1564
+ sleep(1)
1589
1565
  mouse_move_percentage(0.3,0.02)
1590
1566
  sleep(0.5)
1591
- left_click
1567
+ left_click
1592
1568
  sleep(1)
1593
- @driver.find_element(:xpath, '//*[@id="kcaptcha"]').click
1569
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1570
+ @driver.action.context_click(el).perform #우 클릭
1594
1571
  sleep(1)
1595
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1596
- #sleep(2)
1597
- #@driver.manage.window.maximize
1598
-
1599
-
1600
- el1 = @driver.find_element(:xpath, '//*[@id="kcaptcha"]')
1601
- @driver.action.context_click(el1).perform
1602
- sleep(1)
1603
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1604
- #key_down('shift')
1605
- #key_stroke('m')
1606
- #key_up('shift')
1572
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1607
1573
  sleep(1)
1608
1574
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1609
1575
  rescue
1610
1576
  begin
1611
1577
  @driver.switch_to.default_content()
1612
- #@driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
1613
- el = @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
1614
- @driver.action.move_to(el).perform
1578
+ @driver.find_elements(:tag_name, 'img').each do |img|
1579
+ if img.attribute('src').include?('kboard_captcha')
1580
+ el = img # 캡챠 이미지를 el에 저장
1581
+ break # 첫 번째 이미지를 찾으면 루프 종료
1582
+ end
1583
+ end
1615
1584
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1616
1585
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1617
- puts '-[√] 챕챠 코드 code 5.......'.red
1586
+ puts '-[√] 챕챠 코드 code 5-1.......'.red
1587
+ sleep(1)
1588
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1618
1589
  sleep(1)
1619
1590
  mouse_move_percentage(0.3,0.02)
1620
1591
  sleep(0.5)
1621
- left_click
1592
+ left_click
1622
1593
  sleep(1)
1623
- @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]').click
1594
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1595
+ @driver.action.context_click(el).perform #우 클릭
1624
1596
  sleep(1)
1625
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1626
- #sleep(2)
1627
- #@driver.manage.window.maximize
1628
-
1629
- el1 = @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
1630
- @driver.action.context_click(el1).perform
1631
- sleep(1)
1632
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1633
- #key_down('shift')
1634
- #key_stroke('m')
1635
- #key_up('shift')
1597
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1636
1598
  sleep(1)
1637
1599
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1638
1600
  rescue
1639
1601
  begin
1640
1602
  @driver.switch_to.default_content()
1641
- sleep(1)
1642
- #@driver.find_element(:xpath, '//*[@id="captcha_Write"]')
1643
- el = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
1644
- @driver.action.move_to(el).perform
1603
+ #@driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
1604
+ el = @driver.find_element(:css, 'label[for="kboard-input-captcha"] img')
1645
1605
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1646
1606
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1647
- puts '-[√] 챕챠 코드 code 6.......'.red
1607
+ puts '-[√] 챕챠 코드 code 5-2.......'.red
1608
+ sleep(1)
1609
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1648
1610
  sleep(1)
1649
1611
  mouse_move_percentage(0.3,0.02)
1650
1612
  sleep(0.5)
1651
- left_click
1652
- sleep(1)
1653
- @driver.find_element(:xpath, '//*[@id="captcha_Write"]').click
1613
+ left_click
1654
1614
  sleep(1)
1655
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1656
- #sleep(2)
1657
- #@driver.manage.window.maximize
1658
-
1659
-
1660
- el1 = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
1661
- @driver.action.context_click(el1).perform
1615
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1616
+ @driver.action.context_click(el).perform #우 클릭
1662
1617
  sleep(1)
1663
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1664
- #key_down('shift')
1665
- #key_stroke('m')
1666
- #key_up('shift')
1618
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1667
1619
  sleep(1)
1668
1620
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1669
1621
  rescue
1670
1622
  begin
1671
1623
  @driver.switch_to.default_content()
1672
- #@driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
1673
- el = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
1674
- @driver.action.move_to(el).perform
1624
+ sleep(1)
1625
+ #@driver.find_element(:xpath, '//*[@id="captcha_Write"]')
1626
+ el = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
1675
1627
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1676
1628
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1677
- puts '-[√] 챕챠 코드 code 7.......'.red
1629
+ puts '-[√] 챕챠 코드 code 6.......'.red
1630
+ sleep(1)
1631
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1678
1632
  sleep(1)
1679
1633
  mouse_move_percentage(0.3,0.02)
1680
1634
  sleep(0.5)
1681
- left_click
1635
+ left_click
1682
1636
  sleep(1)
1683
- @driver.find_element(:xpath, '//*[@image-reader="in-progress"]').click
1684
- sleep(1)
1685
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1686
- #sleep(2)
1687
- #@driver.manage.window.maximize
1688
-
1689
-
1690
- el1 = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
1691
- @driver.action.context_click(el1).perform
1637
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1638
+ @driver.action.context_click(el).perform #우 클릭
1692
1639
  sleep(1)
1693
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1694
- #key_down('shift')
1695
- #key_stroke('m')
1696
- #key_up('shift')
1640
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1697
1641
  sleep(1)
1698
1642
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1699
1643
  rescue
1700
1644
  begin
1701
1645
  @driver.switch_to.default_content()
1702
- #@driver.find_element(:xpath, '//*[@id="spamauth"]')
1703
- el = @driver.find_element(:xpath, '//*[@id="spamauth"]')
1704
- @driver.action.move_to(el).perform
1646
+ #@driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
1647
+ el = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
1705
1648
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1706
1649
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1707
- puts '-[√] 챕챠 코드 code 8.......'.red
1650
+ puts '-[√] 챕챠 코드 code 7.......'.red
1651
+ sleep(1)
1652
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1708
1653
  sleep(1)
1709
1654
  mouse_move_percentage(0.3,0.02)
1710
1655
  sleep(0.5)
1711
- left_click
1656
+ left_click
1712
1657
  sleep(1)
1713
- @driver.find_element(:xpath, '//*[@id="spamauth"]').click
1714
- sleep(1)
1715
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1716
- #sleep(2)
1717
- #@driver.manage.window.maximize
1718
-
1719
-
1720
- el1 = @driver.find_element(:xpath, '//*[@id="spamauth"]')
1721
- @driver.action.context_click(el1).perform
1658
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1659
+ @driver.action.context_click(el).perform #우 클릭
1722
1660
  sleep(1)
1723
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1724
- #key_down('shift')
1725
- #key_stroke('m')
1726
- #key_up('shift')
1661
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1727
1662
  sleep(1)
1728
1663
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1729
1664
  rescue
1730
1665
  begin
1731
1666
  @driver.switch_to.default_content()
1732
- #@driver.find_element(:xpath, '//*[@id="norobot_img"]')
1733
- el = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
1734
- @driver.action.move_to(el).perform
1667
+ #@driver.find_element(:xpath, '//*[@id="spamauth"]')
1668
+ el = @driver.find_element(:xpath, '//*[@id="spamauth"]')
1735
1669
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1736
1670
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1737
- puts '-[√] 챕챠 코드 code 9.......'.red
1671
+ puts '-[√] 챕챠 코드 code 8.......'.red
1672
+ sleep(1)
1673
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1738
1674
  sleep(1)
1739
1675
  mouse_move_percentage(0.3,0.02)
1740
1676
  sleep(0.5)
1741
- left_click
1677
+ left_click
1742
1678
  sleep(1)
1743
- @driver.find_element(:xpath, '//*[@id="norobot_img"]').click
1679
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1680
+ @driver.action.context_click(el).perform #우 클릭
1744
1681
  sleep(1)
1745
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1746
- #sleep(2)
1747
- #@driver.manage.window.maximize
1748
-
1749
-
1750
- el1 = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
1751
- @driver.action.context_click(el1).perform
1752
- sleep(1)
1753
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1754
- #key_down('shift')
1755
- #key_stroke('m')
1756
- #key_up('shift')
1682
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1757
1683
  sleep(1)
1758
1684
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1759
1685
  rescue
1760
1686
  begin
1761
1687
  @driver.switch_to.default_content()
1762
- #@driver.find_element(:xpath, '//*[@class="CodeImage"]')
1763
- el = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
1764
- @driver.action.move_to(el).perform
1688
+ #@driver.find_element(:xpath, '//*[@id="norobot_img"]')
1689
+ el = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
1765
1690
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1766
1691
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1767
- puts '-[√] 챕챠 코드 code 10.......'.red
1692
+ puts '-[√] 챕챠 코드 code 9.......'.red
1693
+ sleep(1)
1694
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1768
1695
  sleep(1)
1769
1696
  mouse_move_percentage(0.3,0.02)
1770
1697
  sleep(0.5)
1771
- left_click
1698
+ left_click
1772
1699
  sleep(1)
1773
- @driver.find_element(:xpath, '//*[@class="CodeImage"]').click
1774
- sleep(1)
1775
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1776
- #sleep(2)
1777
- #@driver.manage.window.maximize
1778
-
1779
-
1780
- el1 = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
1781
- @driver.action.context_click(el1).perform
1700
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1701
+ @driver.action.context_click(el).perform #우 클릭
1782
1702
  sleep(1)
1783
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1784
- #key_down('shift')
1785
- #key_stroke('m')
1786
- #key_up('shift')
1703
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1787
1704
  sleep(1)
1788
1705
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1789
1706
  rescue
1790
1707
  begin
1791
1708
  @driver.switch_to.default_content()
1792
- #@driver.find_element(:xpath, '//*[@class="CodeImage"]')
1793
- el = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
1794
- @driver.action.move_to(el).perform
1709
+ el = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
1795
1710
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1796
1711
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1797
- puts '-[√] 챕챠 코드 code 11.......'.red
1712
+ puts '-[√] 챕챠 코드 code 10.......'.red
1713
+ sleep(1)
1714
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1798
1715
  sleep(1)
1799
1716
  mouse_move_percentage(0.3,0.02)
1800
1717
  sleep(0.5)
1801
- left_click
1718
+ left_click
1802
1719
  sleep(1)
1803
- @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]').click
1720
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1721
+ @driver.action.context_click(el).perform #우 클릭
1804
1722
  sleep(1)
1805
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1806
- #sleep(2)
1807
- #@driver.manage.window.maximize
1808
-
1809
-
1810
- el1 = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
1811
- @driver.action.context_click(el1).perform
1812
- sleep(1)
1813
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1814
- #key_down('shift')
1815
- #key_stroke('m')
1816
- #key_up('shift')
1723
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1817
1724
  sleep(1)
1818
1725
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1819
1726
  rescue
1820
1727
  begin
1821
1728
  @driver.switch_to.default_content()
1822
- #@driver.find_element(:xpath, '//*[@class="CodeImage"]')
1823
- el = @driver.find_element(:xpath, '//*[@class="lazy-loaded"]')
1824
- @driver.action.move_to(el).perform
1729
+ el = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
1825
1730
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1826
1731
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1827
1732
  puts '-[√] 챕챠 코드 code 11.......'.red
1828
1733
  sleep(1)
1734
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1735
+ sleep(1)
1829
1736
  mouse_move_percentage(0.3,0.02)
1830
1737
  sleep(0.5)
1831
- left_click
1738
+ left_click
1832
1739
  sleep(1)
1833
- @driver.find_element(:xpath, '//*[@class="lazy-loaded"]').click
1740
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1741
+ @driver.action.context_click(el).perform #우 클릭
1834
1742
  sleep(1)
1835
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
1836
- #sleep(2)
1837
- #@driver.manage.window.maximize
1838
-
1839
-
1840
- el1 = @driver.find_element(:xpath, '//*[@class="lazy-loaded"]')
1841
- @driver.action.context_click(el1).perform
1842
- sleep(1)
1843
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
1844
- #key_down('shift')
1845
- #key_stroke('m')
1846
- #key_up('shift')
1743
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1847
1744
  sleep(1)
1848
1745
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1849
1746
  rescue
1747
+ begin
1748
+ @driver.switch_to.default_content()
1749
+ el = @driver.find_element(:xpath, '//*[@class="lazy-loaded"]')
1750
+ puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
1751
+ puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
1752
+ puts '-[√] 챕챠 코드 code 12.......'.red
1753
+ sleep(1)
1754
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
1755
+ sleep(1)
1756
+ mouse_move_percentage(0.3,0.02)
1757
+ sleep(0.5)
1758
+ left_click
1759
+ sleep(1)
1760
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
1761
+ @driver.action.context_click(el).perform #우 클릭
1762
+ sleep(1)
1763
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
1764
+ sleep(1)
1765
+ puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
1766
+ rescue
1767
+
1768
+ end
1769
+ end
1850
1770
 
1851
- end
1852
- end
1771
+ end
1853
1772
  end
1854
1773
  end
1855
1774
  end
1856
1775
  end
1857
1776
  end
1858
1777
  end
1778
+
1859
1779
  end
1860
1780
  end
1861
1781
  end
@@ -2048,23 +1968,22 @@ rescue
2048
1968
  rescue
2049
1969
  begin
2050
1970
  @driver.find_element(:xpath, '//*[@name="captcha"]').click
2051
-
2052
1971
  sleep(1)
2053
-
1972
+
1973
+ # CAPTCHA 요소 찾기
2054
1974
  el2 = @driver.find_element(:xpath, '//*[@name="captcha"]')
1975
+
1976
+ # 우클릭 (context_click) 실행
2055
1977
  @driver.action.context_click(el2).perform
2056
-
2057
1978
  sleep(1)
2058
1979
  @driver.action.key_stroke('up')
2059
1980
  sleep(1)
2060
1981
  @driver.action.key_stroke('up')
2061
1982
  sleep(1)
2062
1983
  @driver.action.key_stroke('enter')
2063
- sleep(1)
2064
1984
  begin
2065
- # 요소 찾기 타임아웃을 7초로 설정
2066
1985
  wait = Selenium::WebDriver::Wait.new(:timeout => 7)
2067
- #요소가 나타날 때까지 7초 동안 기다립니다.
1986
+ # 요소가 나타날 때까지 7초 동안 기다립니다.
2068
1987
  wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
2069
1988
  rescue
2070
1989
  sleep(1)
@@ -2343,46 +2262,7 @@ rescue
2343
2262
  puts '-[√] 캡챠 코드 타겟 완료2.......'.blue
2344
2263
  sleep(1)
2345
2264
  rescue
2346
- begin
2347
- @driver.switch_to.default_content()
2348
- sleep(1)
2349
- @driver.find_element(:xpath, '//*[@id="captcha_code"]').click
2350
-
2351
- sleep(1)
2352
-
2353
- el2 = @driver.find_element(:xpath, '//*[@id="captcha_code"]')
2354
- @driver.action.context_click(el2).perform
2355
-
2356
- sleep(1)
2357
- @driver.action.key_stroke('up')
2358
- sleep(1)
2359
- @driver.action.key_stroke('up')
2360
- sleep(1)
2361
- @driver.action.key_stroke('enter')
2362
- sleep(1)
2363
- begin
2364
- # 요소 찾기 타임아웃을 7초로 설정
2365
- wait = Selenium::WebDriver::Wait.new(:timeout => 7)
2366
- #요소가 나타날 때까지 7초 동안 기다립니다.
2367
- wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
2368
- rescue
2369
- sleep(1)
2370
- @driver.action.key_stroke('left')
2371
- sleep(1)
2372
- @driver.action.key_stroke('up')
2373
- sleep(1)
2374
- @driver.action.key_stroke('enter')
2375
- sleep(1)
2376
- # 요소 찾기 타임아웃을 7초로 설정
2377
- wait = Selenium::WebDriver::Wait.new(:timeout => 7)
2378
- #요소가 나타날 때까지 7초 동안 기다립니다.
2379
- wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
2380
- end
2381
- puts '-[√] 캡챠 코드 타겟 완료2.......'.blue
2382
- sleep(1)
2383
- rescue
2384
-
2385
- end
2265
+
2386
2266
  end
2387
2267
  end
2388
2268
  end
@@ -2562,7 +2442,7 @@ end
2562
2442
  # Alert 처리 부분
2563
2443
  begin
2564
2444
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
2565
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
2445
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
2566
2446
  alert.accept # 알림을 확인
2567
2447
  rescue
2568
2448
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -2595,7 +2475,7 @@ login_url = option['login_url'].to_s
2595
2475
  # Alert 처리 부분
2596
2476
  begin
2597
2477
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
2598
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
2478
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
2599
2479
  alert.accept # 알림을 확인
2600
2480
  rescue
2601
2481
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -3761,7 +3641,7 @@ login_url = option['login_url'].to_s
3761
3641
  # Alert 처리 부분
3762
3642
  begin
3763
3643
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
3764
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
3644
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
3765
3645
  alert.accept # 알림을 확인
3766
3646
  rescue
3767
3647
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -3800,7 +3680,7 @@ begin
3800
3680
  # Alert 처리 부분
3801
3681
  begin
3802
3682
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
3803
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
3683
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
3804
3684
  alert.accept # 알림을 확인
3805
3685
  rescue
3806
3686
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -4013,7 +3893,7 @@ begin
4013
3893
  # Alert 처리 부분
4014
3894
  begin
4015
3895
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
4016
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
3896
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
4017
3897
  alert.accept # 알림을 확인
4018
3898
  rescue
4019
3899
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -4047,7 +3927,7 @@ login_url = option['login_url'].to_s
4047
3927
  # Alert 처리 부분
4048
3928
  begin
4049
3929
  wait = Selenium::WebDriver::Wait.new(:timeout => 3) # 3초 대기
4050
- alert = wait.until { driver.switch_to.alert } # alert가 나타날 때까지 기다림
3930
+ alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
4051
3931
  alert.accept # 알림을 확인
4052
3932
  rescue
4053
3933
  # 알림이 나타나지 않으면 예외 처리하고 넘어감
@@ -4106,7 +3986,16 @@ login_url = option['login_url'].to_s
4106
3986
  puts '-[√] 글쓰기 버튼 code 3.......'.green
4107
3987
  sleep(3.7)
4108
3988
  rescue
4109
-
3989
+ begin
3990
+ el_post_btn = @driver.find_element(:xpath, '//*[@class="gRight"]')
3991
+ @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", el_post_btn)
3992
+ sleep(1)
3993
+ @driver.find_element(:xpath, '//*[@class="gRight"]').click
3994
+ puts '-[√] 글쓰기 버튼 code 4.......'.green
3995
+ sleep(3.7)
3996
+ rescue
3997
+
3998
+ end
4110
3999
  end
4111
4000
  end
4112
4001
  end
@@ -4420,11 +4309,19 @@ login_url = option['login_url'].to_s
4420
4309
  sleep(1)
4421
4310
  rescue
4422
4311
  end
4423
- #요소 속성 제거 하기 기능
4424
- #ttm = @driver.find_element(:xpath, '//*[@class="cheditor-viewmode"]')
4425
- # aria-hidden 요소를 제거 합니다
4426
- #@driver.execute_script('arguments[0].removeAttribute("class")', ttm)
4427
- #puts '-[√] 숨김 code 11 제거 완료.......'.green
4312
+
4313
+ begin
4314
+ @driver.execute_script('var elements = document.querySelectorAll("div[style*=\'background-color: rgb(255, 255, 255)\']");
4315
+ elements.forEach(function(element) {
4316
+ if (element.style.visibility === "hidden") {
4317
+ element.remove(); // background-color와 visibility 조건을 만족하면 요소 제거
4318
+ }
4319
+ });
4320
+ ')
4321
+ puts '-[√] 숨김 code 중 12번 code 제거 완료.......'.green
4322
+ sleep(1)
4323
+ rescue
4324
+ end
4428
4325
 
4429
4326
  end
4430
4327
 
@@ -5014,89 +4911,129 @@ login_url = option['login_url'].to_s
5014
4911
 
5015
4912
 
5016
4913
  ##닉네임 입력 코드 부분─────────────────────────────────────────────────────────────────────>
5017
- puts '-[√] 닉네임 패스워드 입력 가능 여부 체크.......'.yellow
4914
+ puts '-[√] 닉네임 입력 가능 여부 체크.......'.yellow
5018
4915
 
5019
4916
  begin
5020
4917
  @driver.find_element(:xpath, '//*[@id="wr_name"]').send_keys(user_id)
5021
4918
  sleep(1)
4919
+ puts '-[√] 닉네임 1코드 타겟.......'.yellow
5022
4920
  rescue
5023
4921
  begin
5024
4922
  @driver.find_element(:xpath, '//*[@fw-label="작성자"]').send_keys(user_id)
5025
4923
  sleep(1)
4924
+ puts '-[√] 닉네임 2코드 타겟.......'.yellow
5026
4925
  rescue
5027
4926
  begin
5028
- @driver.find_element(:xpath, '//*[@name="member_display"]').send_keys(user_id)
5029
- sleep(1)
4927
+ begin
4928
+ @driver.find_element(:xpath, '//*[@name="member_display"]').send_keys(user_id)
4929
+ sleep(1)
4930
+ puts '-[√] 닉네임 3-1코드 타겟.......'.yellow
4931
+ rescue
4932
+ rows = @driver.find_elements(class: 'kboard-attr-row')
4933
+ rows.each do |row|
4934
+ begin
4935
+ input_element = row.find_element(xpath: './/input[@name="member_display"]')
4936
+ input_element.send_keys(user_id)
4937
+ sleep(1)
4938
+ puts '-[√] 닉네임 3-2코드 타겟.......'.yellow
4939
+ rescue
4940
+ next
4941
+ end
4942
+ end
4943
+ end
5030
4944
  rescue
5031
4945
  begin
5032
4946
  @driver.find_element(:xpath, '//*[@title="닉네임"]').send_keys(user_id)
5033
4947
  sleep(1)
4948
+ puts '-[√] 닉네임 4코드 타겟.......'.yellow
5034
4949
  rescue
5035
4950
  begin
5036
4951
  @driver.find_element(:xpath, '//*[@name="name"]').send_keys(user_id)
5037
4952
  sleep(1)
4953
+ puts '-[√] 닉네임 5코드 타겟.......'.yellow
5038
4954
  rescue
5039
4955
  begin
5040
4956
  @driver.find_element(:xpath, '//*[@name="writer"]').send_keys(user_id)
5041
4957
  sleep(1)
4958
+ puts '-[√] 닉네임 6코드 타겟.......'.yellow
5042
4959
  rescue
5043
4960
  begin
5044
4961
  @driver.find_element(:xpath, '//*[@name="hname"]').send_keys(user_id)
5045
4962
  sleep(1)
4963
+ puts '-[√] 닉네임 7코드 타겟.......'.yellow
5046
4964
  rescue
5047
4965
  begin
5048
4966
  @driver.find_element(:xpath, '//*[@name="wr_name"]').send_keys(user_id)
5049
4967
  sleep(1)
4968
+ puts '-[√] 닉네임 8코드 타겟.......'.yellow
5050
4969
  rescue
5051
4970
  begin
5052
4971
  @driver.find_element(:xpath, '//*[@name="post_nickname"]').send_keys(user_id)
5053
4972
  sleep(1)
4973
+ puts '-[√] 닉네임 9코드 타겟.......'.yellow
5054
4974
  rescue
5055
4975
  begin
5056
4976
  @driver.find_element(:xpath, '//*[@name="user_name"]').send_keys(user_id)
5057
4977
  sleep(1)
4978
+ puts '-[√] 닉네임 10코드 타겟.......'.yellow
5058
4979
  rescue
5059
4980
  begin
5060
4981
  @driver.find_element(:xpath, '//*[@class="mb-user-name"]').send_keys(user_id)
5061
4982
  sleep(1)
4983
+ puts '-[√] 닉네임 11코드 타겟.......'.yellow
5062
4984
  rescue
5063
4985
  begin
5064
4986
  @driver.find_element(:xpath, '//*[@placeholder="비회원 닉네임"]').send_keys(user_id)
5065
4987
  sleep(1)
4988
+ puts '-[√] 닉네임 12코드 타겟.......'.yellow
5066
4989
  rescue
5067
4990
  begin
5068
4991
  @driver.find_element(:xpath, '//*[@placeholder="이름"]').send_keys(user_id)
5069
4992
  sleep(1)
4993
+ puts '-[√] 닉네임 13코드 타겟.......'.yellow
5070
4994
  rescue
5071
4995
  begin
5072
4996
  @driver.find_element(:xpath, '//*[@name="nickname"]').send_keys(user_id)
5073
4997
  sleep(1)
4998
+ puts '-[√] 닉네임 14코드 타겟.......'.yellow
5074
4999
  rescue
5075
5000
  begin
5076
5001
  @driver.find_element(:xpath, '//*[@name="nick"]').send_keys(user_id)
5077
5002
  sleep(1)
5003
+ puts '-[√] 닉네임 15코드 타겟.......'.yellow
5078
5004
  rescue
5079
5005
  begin
5080
5006
  @driver.find_element(:xpath, '//*[@placeholder="작성자 이름"]').send_keys(user_id)
5081
5007
  sleep(1)
5008
+ puts '-[√] 닉네임 16코드 타겟.......'.yellow
5082
5009
  rescue
5083
5010
  begin
5084
5011
  @driver.find_element(:xpath, '//*[@id="reg_name"]').send_keys(user_id)
5085
5012
  sleep(1)
5013
+ puts '-[√] 닉네임 17코드 타겟.......'.yellow
5086
5014
  rescue
5087
5015
  begin
5088
5016
  @driver.find_element(:xpath, '//*[@id="postWriter"]').send_keys(user_id)
5089
5017
  sleep(1)
5018
+ puts '-[√] 닉네임 18코드 타겟.......'.yellow
5090
5019
  rescue
5091
5020
  begin
5092
5021
  @driver.find_element(:xpath, '//*[@id="kboard-input-member-display"]').send_keys(user_id)
5093
5022
  sleep(1)
5023
+ puts '-[√] 닉네임 19코드 타겟.......'.yellow
5094
5024
  rescue
5095
5025
  begin
5096
5026
  @driver.find_element(:xpath, '//*[@name="nick_name"]').send_keys(user_id)
5097
5027
  sleep(1)
5028
+ puts '-[√] 닉네임 20코드 타겟.......'.yellow
5098
5029
  rescue
5099
-
5030
+ begin
5031
+ @driver.find_element(:xpath, '//*[@name="write_name"]').send_keys(user_id)
5032
+ sleep(1)
5033
+ puts '-[√] 닉네임 21코드 타겟.......'.yellow
5034
+ rescue
5035
+
5036
+ end
5100
5037
  end
5101
5038
  end
5102
5039
  end
@@ -5116,71 +5053,87 @@ begin
5116
5053
  end
5117
5054
  end
5118
5055
  end
5119
-
5056
+ puts '-[√] 닉네임 입력 가능 여부 종료.......'.yellow
5120
5057
  end
5121
5058
  ##<─────────────────────────────────────────────────────────────────────닉네임 입력 코드 부분
5122
5059
 
5123
5060
 
5124
5061
  ##패스워드 입력 코드 부분─────────────────────────────────────────────────────────────────────>
5062
+ puts '-[√] 패스워드 입력 가능 여부 체크.......'.yellow
5125
5063
  begin
5126
5064
  @driver.find_element(:xpath, '//*[@id="wr_password"]').send_keys(user_pw)
5127
5065
  sleep(1)
5066
+ puts '-[√] 패스워드 1코드 타겟.......'.yellow
5128
5067
  rescue
5129
5068
  begin
5130
5069
  @driver.find_element(:xpath, '//*[@fw-label="비밀번호"]').send_keys(user_pw)
5131
5070
  sleep(1)
5071
+ puts '-[√] 패스워드 2코드 타겟.......'.yellow
5132
5072
  rescue
5133
5073
  begin
5134
5074
  @driver.find_element(:xpath, '//*[@name="password"]').send_keys(user_pw)
5135
5075
  sleep(1)
5076
+ puts '-[√] 패스워드 3코드 타겟.......'.yellow
5136
5077
  rescue
5137
5078
  begin
5138
5079
  @driver.find_element(:xpath, '//*[@title="비밀번호"]').send_keys(user_pw)
5139
5080
  sleep(1)
5081
+ puts '-[√] 패스워드 4코드 타겟.......'.yellow
5140
5082
  rescue
5141
5083
  begin
5142
5084
  @driver.find_element(:xpath, '//*[@type="password"]').send_keys(user_pw)
5143
5085
  sleep(1)
5086
+ puts '-[√] 패스워드 5코드 타겟.......'.yellow
5144
5087
  rescue
5145
5088
  begin
5146
5089
  @driver.find_element(:xpath, '//*[@name="wr_password"]').send_keys(user_pw)
5147
5090
  sleep(1)
5091
+ puts '-[√] 패스워드 6코드 타겟.......'.yellow
5148
5092
  rescue
5149
5093
  begin
5150
5094
  @driver.find_element(:xpath, '//*[@name="passwd"]').send_keys(user_pw)
5151
5095
  sleep(1)
5096
+ puts '-[√] 패스워드 7코드 타겟.......'.yellow
5152
5097
  rescue
5153
5098
  begin
5154
5099
  @driver.find_element(:xpath, '//*[@name="post_password"]').send_keys(user_pw)
5155
5100
  sleep(1)
5101
+ puts '-[√] 패스워드 8코드 타겟.......'.yellow
5156
5102
  rescue
5157
5103
  begin
5158
5104
  @driver.find_element(:xpath, '//*[@class="mb-passwd"]').send_keys(user_pw)
5159
5105
  sleep(1)
5106
+ puts '-[√] 패스워드 9코드 타겟.......'.yellow
5160
5107
  rescue
5161
5108
  begin
5162
5109
  @driver.find_element(:xpath, '//*[@placeholder="비밀번호"]').send_keys(user_pw)
5163
5110
  sleep(1)
5111
+ puts '-[√] 패스워드 10코드 타겟.......'.yellow
5164
5112
  rescue
5165
5113
  begin
5166
5114
  @driver.find_element(:xpath, '//*[@id="passwd"]').send_keys(user_pw)
5167
5115
  sleep(1)
5116
+ puts '-[√] 패스워드 11코드 타겟.......'.yellow
5168
5117
  rescue
5169
5118
  begin
5170
5119
  @driver.find_element(:xpath, '//*[@id="blogPostPassword1"]').send_keys(user_pw)
5171
5120
  sleep(1)
5121
+ puts '-[√] 패스워드 12코드 타겟.......'.yellow
5172
5122
  rescue
5173
5123
  begin
5174
5124
  @driver.find_element(:xpath, '//*[@name="secret_pass"]').send_keys(user_pw)
5175
5125
  sleep(1)
5126
+ puts '-[√] 패스워드 13코드 타겟.......'.yellow
5176
5127
  rescue
5177
5128
  begin
5178
5129
  @driver.find_element(:xpath, '//*[@id="reg_pwd"]').send_keys(user_pw)
5179
5130
  sleep(1)
5131
+ puts '-[√] 패스워드 14코드 타겟.......'.yellow
5180
5132
  rescue
5181
5133
  begin
5182
5134
  @driver.find_element(:xpath, '//*[@id="kboard-input-password"]').send_keys(user_pw)
5183
5135
  sleep(1)
5136
+ puts '-[√] 패스워드 15코드 타겟.......'.yellow
5184
5137
  rescue
5185
5138
 
5186
5139
  end
@@ -5197,7 +5150,7 @@ begin
5197
5150
  end
5198
5151
  end
5199
5152
  end
5200
- puts '-[√] 닉네임 패스워드 1차 입력 가능 여부 종료.......'.yellow
5153
+ puts '-[√] 패스워드 입력 가능 여부 종료.......'.yellow
5201
5154
  sleep(1)
5202
5155
  end
5203
5156
  ##<─────────────────────────────────────────────────────────────────────패스워드 입력 코드 부분
@@ -5786,16 +5739,18 @@ begin
5786
5739
  puts '-[√] 제목 code 37.......'.yellow
5787
5740
 
5788
5741
 
5742
+
5743
+
5789
5744
  rescue => e
5790
5745
  puts '-[√] 제목 입력 항목 코드 탐색 실패!!.......'.red
5791
5746
  puts '-[√] 다음 작업 준비 중으로 1~60 초 정도 기다려주세요.......'.red
5792
-
5747
+
5793
5748
  @driver.window_handles.each do |handle|
5794
- @driver.switch_to.window(handle)
5749
+ @driver.switch_to.window(handle)
5795
5750
  begin
5796
5751
  # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
5797
5752
  @driver.close
5798
-
5753
+
5799
5754
  rescue Selenium::WebDriver::Error::WebDriverError => e
5800
5755
  puts "크롬 브라우저 종료: #{e.message}"
5801
5756
  end
@@ -5803,8 +5758,10 @@ begin
5803
5758
  return 0
5804
5759
  @driver.quit
5805
5760
  end
5761
+
5806
5762
 
5807
5763
 
5764
+
5808
5765
  end
5809
5766
 
5810
5767
  end
@@ -6029,6 +5986,7 @@ begin
6029
5986
  html_bb = @driver.find_element(:xpath, '//*[@id="moreMisc-1"]')
6030
5987
  @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", html_bb)
6031
5988
  sleep(1)
5989
+
6032
5990
  @driver.find_element(:xpath, '//*[@id="moreMisc-1"]').click
6033
5991
  sleep(1)
6034
5992
  @driver.find_element(:xpath, '//*[@id="html-1"]').click
@@ -6338,7 +6296,38 @@ rescue
6338
6296
  sleep(1)
6339
6297
  puts '내용 항목 코드 타겟 36.......'.red
6340
6298
  rescue
6341
-
6299
+ begin
6300
+ @driver.find_element(:xpath, '//textarea[@id="kboard_content"]').click
6301
+ sleep(1)
6302
+ puts '내용 항목 코드 타겟 37.......'.red
6303
+ rescue
6304
+ begin
6305
+ @driver.find_element(:xpath, '//textarea[@class="editor-textarea "]').click
6306
+ sleep(1)
6307
+ puts '내용 항목 코드 타겟 38.......'.red
6308
+ rescue
6309
+ begin
6310
+ @driver.find_element(:xpath, '//textarea[@name="kboard_content"]').click
6311
+ sleep(1)
6312
+ puts '내용 항목 코드 타겟 39.......'.red
6313
+ rescue
6314
+ begin
6315
+ dev_tools = driver.execute_cdp_cmd('Emulate.DeviceMetrics', {
6316
+ 'width' => 375, # 모바일 화면 너비 (예: iPhone X 너비)
6317
+ 'height' => 667, # 모바일 화면 높이
6318
+ 'deviceScaleFactor' => 3.0, # 화면 비율
6319
+ 'mobile' => true # 모바일 모드 활성화
6320
+ })
6321
+ sleep(1)
6322
+ @driver.find_element(:xpath, '//textarea[@name="kboard_content"]').click
6323
+ sleep(1)
6324
+ puts '내용 항목 코드 타겟 40.......'.red
6325
+ rescue
6326
+
6327
+ end
6328
+ end
6329
+ end
6330
+ end
6342
6331
  end
6343
6332
  end
6344
6333
  end
@@ -7386,29 +7375,20 @@ begin
7386
7375
  @driver.switch_to.default_content()
7387
7376
  #@driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
7388
7377
  el = @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
7389
- @driver.action.move_to(el).perform
7390
7378
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7391
7379
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7392
7380
  puts '-[√] 챕챠 코드 code 1.......'.red
7393
7381
  sleep(1)
7382
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7383
+ sleep(1)
7394
7384
  mouse_move_percentage(0.3,0.02)
7395
7385
  sleep(0.5)
7396
- left_click
7386
+ left_click
7397
7387
  sleep(1)
7398
- @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]').click
7388
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7389
+ @driver.action.context_click(el).perform #우 클릭
7399
7390
  sleep(1)
7400
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7401
- #sleep(2)
7402
- #@driver.manage.window.maximize
7403
-
7404
-
7405
- el1 = @driver.find_element(:xpath, '//*[@id="mb_kcaptcha"]')
7406
- @driver.action.context_click(el1).perform
7407
- sleep(1)
7408
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7409
- #key_down('shift')
7410
- #key_stroke('m')
7411
- #key_up('shift')
7391
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7412
7392
  sleep(1)
7413
7393
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7414
7394
  rescue
@@ -7416,29 +7396,20 @@ rescue
7416
7396
  @driver.switch_to.default_content()
7417
7397
  #@driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
7418
7398
  el = @driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
7419
- @driver.action.move_to(el).perform
7420
7399
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7421
7400
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7422
7401
  puts '-[√] 챕챠 코드 code 2.......'.red
7423
7402
  sleep(1)
7403
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7404
+ sleep(1)
7424
7405
  mouse_move_percentage(0.3,0.02)
7425
7406
  sleep(0.5)
7426
- left_click
7407
+ left_click
7427
7408
  sleep(1)
7428
- @driver.find_element(:xpath, '//*[@alt="자동등록방지"]').click
7409
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7410
+ @driver.action.context_click(el).perform #우 클릭
7429
7411
  sleep(1)
7430
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7431
- #sleep(2)
7432
- #@driver.manage.window.maximize
7433
-
7434
-
7435
- el1 = @driver.find_element(:xpath, '//*[@alt="자동등록방지"]')
7436
- @driver.action.context_click(el1).perform
7437
- sleep(1)
7438
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7439
- #key_down('shift')
7440
- #key_stroke('m')
7441
- #key_up('shift')
7412
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7442
7413
  sleep(1)
7443
7414
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7444
7415
  rescue
@@ -7447,7 +7418,6 @@ rescue
7447
7418
  sleep(1)
7448
7419
  #@driver.find_element(:xpath, '//*[@id="captcha_img"]').send_keys(:tab)
7449
7420
  el = @driver.find_element(:xpath, '//*[@id="captcha_img"]')
7450
- @driver.action.move_to(el).perform
7451
7421
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7452
7422
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7453
7423
  puts '-[√] 챕챠 코드 code 3.......'.red
@@ -7457,23 +7427,17 @@ rescue
7457
7427
  @driver.execute_script("arguments[0].remove();", chat_box)
7458
7428
  sleep(1)
7459
7429
 
7430
+ sleep(1)
7431
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7432
+ sleep(1)
7460
7433
  mouse_move_percentage(0.3,0.02)
7461
7434
  sleep(0.5)
7462
- left_click
7463
- sleep(1)
7464
- @driver.find_element(:xpath, '//*[@id="captcha_img"]').click
7435
+ left_click
7465
7436
  sleep(1)
7466
-
7467
-
7468
-
7469
-
7470
- el1 = @driver.find_element(:xpath, '//*[@id="captcha_img"]')
7471
- @driver.action.context_click(el1).perform
7437
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7438
+ @driver.action.context_click(el).perform #우 클릭
7472
7439
  sleep(1)
7473
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7474
- #key_down('shift')
7475
- #key_stroke('m')
7476
- #key_up('shift')
7440
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7477
7441
  sleep(1)
7478
7442
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7479
7443
  rescue
@@ -7481,250 +7445,226 @@ rescue
7481
7445
  @driver.switch_to.default_content()
7482
7446
  #@driver.find_element(:xpath, '//*[@id="kcaptcha"]')
7483
7447
  el = @driver.find_element(:xpath, '//*[@id="kcaptcha"]')
7484
- @driver.action.move_to(el).perform
7485
7448
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7486
7449
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7487
7450
  puts '-[√] 챕챠 코드 code 4.......'.red
7488
7451
  sleep(1)
7452
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7453
+ sleep(1)
7489
7454
  mouse_move_percentage(0.3,0.02)
7490
7455
  sleep(0.5)
7491
- left_click
7456
+ left_click
7492
7457
  sleep(1)
7493
- @driver.find_element(:xpath, '//*[@id="kcaptcha"]').click
7458
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7459
+ @driver.action.context_click(el).perform #우 클릭
7494
7460
  sleep(1)
7495
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7496
- #sleep(2)
7497
- #@driver.manage.window.maximize
7498
-
7499
-
7500
- el1 = @driver.find_element(:xpath, '//*[@id="kcaptcha"]')
7501
- @driver.action.context_click(el1).perform
7502
- sleep(1)
7503
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7504
- #key_down('shift')
7505
- #key_stroke('m')
7506
- #key_up('shift')
7461
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7507
7462
  sleep(1)
7508
7463
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7509
7464
  rescue
7510
7465
  begin
7511
7466
  @driver.switch_to.default_content()
7512
- #@driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
7513
- el = @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
7514
- @driver.action.move_to(el).perform
7467
+ @driver.find_elements(:tag_name, 'img').each do |img|
7468
+ if img.attribute('src').include?('kboard_captcha')
7469
+ el = img # 캡챠 이미지를 el에 저장
7470
+ break # 첫 번째 이미지를 찾으면 루프 종료
7471
+ end
7472
+ end
7515
7473
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7516
7474
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7517
- puts '-[√] 챕챠 코드 code 5.......'.red
7475
+ puts '-[√] 챕챠 코드 code 5-1.......'.red
7476
+ sleep(1)
7477
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7518
7478
  sleep(1)
7519
7479
  mouse_move_percentage(0.3,0.02)
7520
7480
  sleep(0.5)
7521
- left_click
7481
+ left_click
7522
7482
  sleep(1)
7523
- @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]').click
7524
- sleep(1)
7525
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7526
- #sleep(2)
7527
- #@driver.manage.window.maximize
7528
-
7529
- el1 = @driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
7530
- @driver.action.context_click(el1).perform
7483
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7484
+ @driver.action.context_click(el).perform #우 클릭
7531
7485
  sleep(1)
7532
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7533
- #key_down('shift')
7534
- #key_stroke('m')
7535
- #key_up('shift')
7486
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7536
7487
  sleep(1)
7537
7488
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7538
7489
  rescue
7539
7490
  begin
7540
7491
  @driver.switch_to.default_content()
7541
- sleep(1)
7542
- #@driver.find_element(:xpath, '//*[@id="captcha_Write"]')
7543
- el = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
7544
- @driver.action.move_to(el).perform
7492
+ #@driver.find_element(:xpath, '//*[@for="kboard-input-captcha"]')
7493
+ el = @driver.find_element(:css, 'label[for="kboard-input-captcha"] img')
7545
7494
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7546
7495
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7547
- puts '-[√] 챕챠 코드 code 6.......'.red
7496
+ puts '-[√] 챕챠 코드 code 5-2.......'.red
7497
+ sleep(1)
7498
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7548
7499
  sleep(1)
7549
7500
  mouse_move_percentage(0.3,0.02)
7550
7501
  sleep(0.5)
7551
- left_click
7502
+ left_click
7552
7503
  sleep(1)
7553
- @driver.find_element(:xpath, '//*[@id="captcha_Write"]').click
7504
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7505
+ @driver.action.context_click(el).perform #우 클릭
7554
7506
  sleep(1)
7555
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7556
- #sleep(2)
7557
- #@driver.manage.window.maximize
7558
-
7559
-
7560
- el1 = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
7561
- @driver.action.context_click(el1).perform
7562
- sleep(1)
7563
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7564
- #key_down('shift')
7565
- #key_stroke('m')
7566
- #key_up('shift')
7507
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7567
7508
  sleep(1)
7568
7509
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7569
7510
  rescue
7570
7511
  begin
7571
7512
  @driver.switch_to.default_content()
7572
- #@driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
7573
- el = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
7574
- @driver.action.move_to(el).perform
7513
+ sleep(1)
7514
+ #@driver.find_element(:xpath, '//*[@id="captcha_Write"]')
7515
+ el = @driver.find_element(:xpath, '//*[@id="captcha_Write"]')
7575
7516
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7576
7517
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7577
- puts '-[√] 챕챠 코드 code 7.......'.red
7518
+ puts '-[√] 챕챠 코드 code 6.......'.red
7519
+ sleep(1)
7520
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7578
7521
  sleep(1)
7579
7522
  mouse_move_percentage(0.3,0.02)
7580
7523
  sleep(0.5)
7581
- left_click
7582
- sleep(1)
7583
- @driver.find_element(:xpath, '//*[@image-reader="in-progress"]').click
7524
+ left_click
7584
7525
  sleep(1)
7585
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7586
- #sleep(2)
7587
- #@driver.manage.window.maximize
7588
-
7589
-
7590
- el1 = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
7591
- @driver.action.context_click(el1).perform
7526
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7527
+ @driver.action.context_click(el).perform #우 클릭
7592
7528
  sleep(1)
7593
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7594
- #key_down('shift')
7595
- #key_stroke('m')
7596
- #key_up('shift')
7529
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7597
7530
  sleep(1)
7598
7531
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7599
7532
  rescue
7600
7533
  begin
7601
7534
  @driver.switch_to.default_content()
7602
- #@driver.find_element(:xpath, '//*[@id="spamauth"]')
7603
- el = @driver.find_element(:xpath, '//*[@id="spamauth"]')
7604
- @driver.action.move_to(el).perform
7535
+ #@driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
7536
+ el = @driver.find_element(:xpath, '//*[@image-reader="in-progress"]')
7605
7537
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7606
7538
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7607
- puts '-[√] 챕챠 코드 code 8.......'.red
7539
+ puts '-[√] 챕챠 코드 code 7.......'.red
7540
+ sleep(1)
7541
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7608
7542
  sleep(1)
7609
7543
  mouse_move_percentage(0.3,0.02)
7610
7544
  sleep(0.5)
7611
- left_click
7545
+ left_click
7612
7546
  sleep(1)
7613
- @driver.find_element(:xpath, '//*[@id="spamauth"]').click
7547
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7548
+ @driver.action.context_click(el).perform #우 클릭
7614
7549
  sleep(1)
7615
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7616
- #sleep(2)
7617
- #@driver.manage.window.maximize
7618
-
7619
-
7620
- el1 = @driver.find_element(:xpath, '//*[@id="spamauth"]')
7621
- @driver.action.context_click(el1).perform
7622
- sleep(1)
7623
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7624
- #key_down('shift')
7625
- #key_stroke('m')
7626
- #key_up('shift')
7550
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7627
7551
  sleep(1)
7628
7552
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7629
7553
  rescue
7630
7554
  begin
7631
7555
  @driver.switch_to.default_content()
7632
- #@driver.find_element(:xpath, '//*[@id="norobot_img"]')
7633
- el = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
7634
- @driver.action.move_to(el).perform
7556
+ #@driver.find_element(:xpath, '//*[@id="spamauth"]')
7557
+ el = @driver.find_element(:xpath, '//*[@id="spamauth"]')
7635
7558
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7636
7559
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7637
- puts '-[√] 챕챠 코드 code 9.......'.red
7560
+ puts '-[√] 챕챠 코드 code 8.......'.red
7561
+ sleep(1)
7562
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7638
7563
  sleep(1)
7639
7564
  mouse_move_percentage(0.3,0.02)
7640
7565
  sleep(0.5)
7641
- left_click
7566
+ left_click
7642
7567
  sleep(1)
7643
- @driver.find_element(:xpath, '//*[@id="norobot_img"]').click
7568
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7569
+ @driver.action.context_click(el).perform #우 클릭
7644
7570
  sleep(1)
7645
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7646
- #sleep(2)
7647
- #@driver.manage.window.maximize
7648
-
7649
-
7650
- el1 = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
7651
- @driver.action.context_click(el1).perform
7652
- sleep(1)
7653
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7654
- #key_down('shift')
7655
- #key_stroke('m')
7656
- #key_up('shift')
7571
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7657
7572
  sleep(1)
7658
7573
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7659
7574
  rescue
7660
7575
  begin
7661
7576
  @driver.switch_to.default_content()
7662
- #@driver.find_element(:xpath, '//*[@class="CodeImage"]')
7663
- el = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
7664
- @driver.action.move_to(el).perform
7577
+ #@driver.find_element(:xpath, '//*[@id="norobot_img"]')
7578
+ el = @driver.find_element(:xpath, '//*[@id="norobot_img"]')
7665
7579
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7666
7580
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7667
- puts '-[√] 챕챠 코드 code 10.......'.red
7581
+ puts '-[√] 챕챠 코드 code 9.......'.red
7582
+ sleep(1)
7583
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7668
7584
  sleep(1)
7669
7585
  mouse_move_percentage(0.3,0.02)
7670
7586
  sleep(0.5)
7671
- left_click
7587
+ left_click
7672
7588
  sleep(1)
7673
- @driver.find_element(:xpath, '//*[@class="CodeImage"]').click
7589
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7590
+ @driver.action.context_click(el).perform #우 클릭
7674
7591
  sleep(1)
7675
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7676
- #sleep(2)
7677
- #@driver.manage.window.maximize
7678
-
7679
-
7680
- el1 = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
7681
- @driver.action.context_click(el1).perform
7682
- sleep(1)
7683
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7684
- #key_down('shift')
7685
- #key_stroke('m')
7686
- #key_up('shift')
7592
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7687
7593
  sleep(1)
7688
7594
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7689
7595
  rescue
7690
7596
  begin
7691
7597
  @driver.switch_to.default_content()
7692
- #@driver.find_element(:xpath, '//*[@class="CodeImage"]')
7693
- el = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
7694
- @driver.action.move_to(el).perform
7598
+ el = @driver.find_element(:xpath, '//*[@class="CodeImage"]')
7695
7599
  puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7696
7600
  puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7697
- puts '-[√] 챕챠 코드 code 11.......'.red
7601
+ puts '-[√] 챕챠 코드 code 10.......'.red
7602
+ sleep(1)
7603
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7698
7604
  sleep(1)
7699
7605
  mouse_move_percentage(0.3,0.02)
7700
7606
  sleep(0.5)
7701
- left_click
7607
+ left_click
7702
7608
  sleep(1)
7703
- @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]').click
7609
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7610
+ @driver.action.context_click(el).perform #우 클릭
7704
7611
  sleep(1)
7705
- #@driver.manage.window.position = Selenium::WebDriver::Point.new(0, 0)
7706
- #sleep(2)
7707
- #@driver.manage.window.maximize
7708
-
7709
-
7710
- el1 = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
7711
- @driver.action.context_click(el1).perform
7712
- sleep(1)
7713
- @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #컨트롤+a
7714
- #key_down('shift')
7715
- #key_stroke('m')
7716
- #key_up('shift')
7612
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7717
7613
  sleep(1)
7718
7614
  puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7719
7615
  rescue
7720
-
7721
- end
7616
+ begin
7617
+ @driver.switch_to.default_content()
7618
+ el = @driver.find_element(:xpath, '//*[@id="kcaptcha_image"]')
7619
+ puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7620
+ puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7621
+ puts '-[√] 챕챠 코드 code 11.......'.red
7622
+ sleep(1)
7623
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7624
+ sleep(1)
7625
+ mouse_move_percentage(0.3,0.02)
7626
+ sleep(0.5)
7627
+ left_click
7628
+ sleep(1)
7629
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7630
+ @driver.action.context_click(el).perform #우 클릭
7631
+ sleep(1)
7632
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7633
+ sleep(1)
7634
+ puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7635
+ rescue
7636
+ begin
7637
+ @driver.switch_to.default_content()
7638
+ el = @driver.find_element(:xpath, '//*[@class="lazy-loaded"]')
7639
+ puts '-[√] 캡챠 발견!! 캡차 해제를 위한 환경설정 약 10초 소요.......'.red
7640
+ puts '-[√] 챕챠 해제 중~ 해제 완료까지 마우스 움직이지 마세요.......'.red
7641
+ puts '-[√] 챕챠 코드 code 12.......'.red
7642
+ sleep(1)
7643
+ @driver.execute_script("arguments[0].scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});", el) # 화면 가운데
7644
+ sleep(1)
7645
+ mouse_move_percentage(0.3,0.02)
7646
+ sleep(0.5)
7647
+ left_click
7648
+ sleep(1)
7649
+ @driver.switch_to.window(@driver.window_handle) #핸들 주입
7650
+ @driver.action.context_click(el).perform #우 클릭
7651
+ sleep(1)
7652
+ @driver.action.key_down(:shift).key_stroke('m').key_up(:shift).perform #단축키
7653
+ sleep(1)
7654
+ puts '-[√] 캡챠 코드 타겟 완료1.......'.blue
7655
+ rescue
7656
+
7657
+ end
7658
+ end
7659
+
7660
+ end
7722
7661
  end
7723
7662
  end
7724
7663
  end
7725
7664
  end
7726
7665
  end
7727
7666
  end
7667
+
7728
7668
  end
7729
7669
  end
7730
7670
  end
@@ -7917,23 +7857,22 @@ rescue
7917
7857
  rescue
7918
7858
  begin
7919
7859
  @driver.find_element(:xpath, '//*[@name="captcha"]').click
7920
-
7921
7860
  sleep(1)
7922
-
7861
+
7862
+ # CAPTCHA 요소 찾기
7923
7863
  el2 = @driver.find_element(:xpath, '//*[@name="captcha"]')
7864
+
7865
+ # 우클릭 (context_click) 실행
7924
7866
  @driver.action.context_click(el2).perform
7925
-
7926
7867
  sleep(1)
7927
7868
  @driver.action.key_stroke('up')
7928
7869
  sleep(1)
7929
7870
  @driver.action.key_stroke('up')
7930
7871
  sleep(1)
7931
7872
  @driver.action.key_stroke('enter')
7932
- sleep(1)
7933
7873
  begin
7934
- # 요소 찾기 타임아웃을 7초로 설정
7935
7874
  wait = Selenium::WebDriver::Wait.new(:timeout => 7)
7936
- #요소가 나타날 때까지 7초 동안 기다립니다.
7875
+ # 요소가 나타날 때까지 7초 동안 기다립니다.
7937
7876
  wait.until { @driver.find_element(:xpath, '//*[@class="captcha-solver captcha-solver_inner"]') }
7938
7877
  rescue
7939
7878
  sleep(1)
@@ -8628,8 +8567,28 @@ rescue
8628
8567
  sleep(5)
8629
8568
 
8630
8569
  rescue
8570
+ begin
8571
+ ss_button = @driver.find_element(:xpath, "//button[contains(text(), '글쓰기')]")
8572
+ @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
8573
+ sleep(1)
8574
+
8575
+ @driver.find_element(:xpath, "//button[contains(text(), '글쓰기')]").click
8576
+ puts '-[√] 등록을 27번 코드로 시도하였습니다.......'.magenta
8577
+ sleep(5)
8578
+
8579
+ rescue
8580
+ begin
8581
+ ss_button = @driver.find_element(:xpath, '//*[@class="Button button-rounded black button-normal"]')
8582
+ @driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", ss_button)
8583
+ sleep(1)
8584
+
8585
+ @driver.find_element(:xpath, '//*[@class="Button button-rounded black button-normal"]').click
8586
+ puts '-[√] 등록을 28번 코드로 시도하였습니다.......'.magenta
8587
+ sleep(5)
8588
+
8589
+ rescue
8631
8590
 
8632
-
8591
+
8633
8592
  ########─────────────────────────────▼▼▼▼▼▼▼ 등록버튼 2차 시도 ▼▼▼▼▼▼▼──────────────────────────────#######
8634
8593
  begin
8635
8594
  puts '-[√] 등록 버튼 코드 탐색에 실패하였습니다.......'.magenta
@@ -8827,8 +8786,8 @@ rescue
8827
8786
 
8828
8787
 
8829
8788
 
8830
-
8831
-
8789
+ end
8790
+ end
8832
8791
  end
8833
8792
  end
8834
8793
  end