1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp Cho hỏi cách click button bằng ChromeDriver

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Hade123, 8/5/19.

  1. Hade123

    Hade123 Thành viên
    • 8/11

    Tham gia ngày:
    14/12/18
    Bài viết:
    44
    Đã được thích:
    2
    mình mới học autoit và mình muốn click vào button trong chrome thì phải dùng hàm nào vậy
    code của mình

    Mã (AutoIt):
    #include "wd_core.au3"
    #include "wd_helper.au3"
    Local $sDesiredCapabilities, $sSession
    SetupChrome()

    _WD_Startup()
    $sSession = _WD_CreateSession($sDesiredCapabilities)
    _WD_Navigate($sSession, "https://www.facebook.com")
    _ChromeSetInputValueById($sSession,'email','abc')
    _ChromeSetInputValueById($sSession,'pass','xyz')


    Func SetupChrome()
        _WD_Option('Driver', 'chromedriver.exe')
        _WD_Option('Port', 9515)
        _WD_Option('DriverParams', '--log-path="' & @ScriptDir & '\chrome.log"')

        $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"chromeOptions": {"w3c": true, "args":[' & """start-maximized""," & " ""disable-infobars""" & "" & '] }}}}'
    EndFunc   ;==>SetupChrome
    Func _ChromeSetInputValueById($sSession,$Id,$Value)
    $sButton = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@id='"&$Id&"']")
    _WD_ElementAction($sSession,$sButton,'value', $Value)
    EndFunc
    Func _WD_ElementValue($sKey,$Value)
        $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath,$sKey)
        _WD_ElementAction($sSession,$sElement,'value', $Value)
    EndFunc
     
    xình thích bài này.
  2. longtu

    longtu Thành viên
    • 18/23

    Tham gia ngày:
    9/8/17
    Bài viết:
    67
    Đã được thích:
    37
    mở udf, tìm hàm _WD_ElementAction rồi đọc $sCommand của nó gồm những gì là sẽ tự tìm ra câu trả lời
     
  3. Toàn Phạm

    Toàn Phạm Thành viên
    • 8/11

    Tham gia ngày:
    10/9/18
    Bài viết:
    39
    Đã được thích:
    6
    CHo e hỏi vơi code như trên bây giờ muốn hiện trình duyệt lên thì như thế nào ạ
     
  4. Hade123

    Hade123 Thành viên
    • 8/11

    Tham gia ngày:
    14/12/18
    Bài viết:
    44
    Đã được thích:
    2
    cần có thêm wd_core.au3 và wd_helper.au3 end chromedriver nhé bác
     
  5. TungNhoc

    TungNhoc Thành viên
    • 8/11

    Tham gia ngày:
    15/8/18
    Bài viết:
    30
    Đã được thích:
    2
    _WD_ElementClick("//input[@type='submit']") ; click button


    Func _WD_ElementClick($sKey)
    $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, $sKey)
    _WD_ElementAction($sSession, $sElement, 'click')
    EndFunc ;==>_WD_ElementClick

    sửa cái $sKey theo giá trị bên bạn nhé
     
    #Rainy# Hoàng Vũ IT thích bài này.
  6. Toàn Phạm

    Toàn Phạm Thành viên
    • 8/11

    Tham gia ngày:
    10/9/18
    Bài viết:
    39
    Đã được thích:
    6
    Em muốn click vào class này thì WD_FindElement như thế nào hả bác ?
    [​IMG]
     
  7. TungNhoc

    TungNhoc Thành viên
    • 8/11

    Tham gia ngày:
    15/8/18
    Bài viết:
    30
    Đã được thích:
    2
    _WD_ElementClick("//*[text()='Đăng nhập']") ; click button
     
    Toàn Phạm thích bài này.
  8. Toàn Phạm

    Toàn Phạm Thành viên
    • 8/11

    Tham gia ngày:
    10/9/18
    Bài viết:
    39
    Đã được thích:
    6
    OK Thanks bác nhiều quá, em mới tìm hiểu về WEDDRIVER mà cái $command nó có nhiều dạng quá, tiện đây cho em hỏi đế lấy các giá trị của 1 id thì dùng như thế nào, bởi vì id nó nằm trong các thẻ hoặc class nó không đồng nhất nên em chạy mà k được. Ví dụ em muốn lấy giá trị của id "sessionid" là 125635 (gia trị này thay đổi liên tục) hoặc giá trị của 1 class như sau thì như thê nào ạ, e mò mãi mà chưa ra:
    [​IMG][​IMG]
    hoặc
    [​IMG]

    Mong bác chỉ giúp e với ạ, thanks bác ạ !!!
     
    Chỉnh sửa cuối: 13/6/19
  9. TungNhoc

    TungNhoc Thành viên
    • 8/11

    Tham gia ngày:
    15/8/18
    Bài viết:
    30
    Đã được thích:
    2
    Get source ra để tìm chuỗi đó rồi click , hoặc tìm class khác click đó là đối với xpath , bác có thể tìm qua click từ css
     
  10. #Rainy# Hoàng Vũ IT

    #Rainy# Hoàng Vũ IT Hoàng Vũ IT Moderator
    • 43/45

    Tham gia ngày:
    21/11/16
    Bài viết:
    404
    Đã được thích:
    122
    Có 2 cách.
    1 là chạy JS document.getElementById('SessionId').textHTML();
    2 là dùng xpath get element sessionID rồi get text của nó.
    k tets cụ thể nên k chắc.
    get soure rồi regexp cx kp tồi. Stringregexp($soure,'>(\d+)<',3)
     
  11. Toàn Phạm

    Toàn Phạm Thành viên
    • 8/11

    Tham gia ngày:
    10/9/18
    Bài viết:
    39
    Đã được thích:
    6
    Em đã get thành công text của nó theo Element bằng câu lệnh:
    Mã (AutoIt):
    $ID_TEXT = _WD_ElementAction($sSession, _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//p[@id='accountLabel']"), 'text')
    Tuy nhiên còn cái click button theo cái cú pháp của bác vẫn chưa click được:
    [​IMG]
    Mong bác xem và giúp đỡ !!!!
     
  12. #Rainy# Hoàng Vũ IT

    #Rainy# Hoàng Vũ IT Hoàng Vũ IT Moderator
    • 43/45

    Tham gia ngày:
    21/11/16
    Bài viết:
    404
    Đã được thích:
    122
    vu oan giá hoạ quá. Mình có chỉ bác cách click đâu.
    để ý thấy là sẽ biết thẻ cần click là thẻ a kp là thẻ span đâu. xpath lấy thẻ div (cha a) : //div[@class="icon dangnhap"]
    thẻ a là thẻ con => //div[@class="icon dangnhap"]/a đây là xpath. Cpnf cách dùng chắc k cần phải nói với bác rồi
     
  13. cuongict2

    cuongict2 Thành viên mới
    • 1/6

    Tham gia ngày:
    23/2/19
    Bài viết:
    1
    Đã được thích:
    0
    Các bác ơi giúp mình với. Mình có 3 tên như này
    [​IMG]
    Class cả 3 tên đều như thế này: <div class="col-8 pl-3 pr-0"><span>HỌ VÀ TÊN</span></div>
    -> nên muốn chọn tên thì ko click theo class đc. mình tìm hiểu thì có thể click theo text
    Ở trên có đoạn mã click text nhưng mình thử ko đc _WD_ElementClick("//*[text()='Dương Văn Cường']")
    Mong các cao nhân giúp đỡ mình với ạ. mình cảm ơn rất nhiều!
     
  14. #Rainy# Hoàng Vũ IT

    #Rainy# Hoàng Vũ IT Hoàng Vũ IT Moderator
    • 43/45

    Tham gia ngày:
    21/11/16
    Bài viết:
    404
    Đã được thích:
    122
    _WD_ElementClick("//*[.text()='Dương Văn Cường']")
    Nếu mình nhớ k nhầm thì như này.
    Hoặc là sử dụng regexp để biết vị trí bạn cần click sau đó sử dụng xpath có posion. (//div[@class="col-8 pl-3 pr-0"])[3]
     

Chia sẻ trang này

Đang tải...