หน้า 1 จากทั้งหมด 3

การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 10:29 am
โดย natnicha001
อยากทราบว่า : จะทำให้เราเรียกใช้งานปุ่ม โพส และสั่งให้มันสามารถคลิกได้เอง จะมีการเรียกใช้งานอย่างไร

รูปภาพ


รูปภาพ

โค้ด: เลือกทั้งหมด

<input type="submit" accesskey="s" tabindex="6" name="post" value="โพสต์" class="button1 default-submit-action">

โค้ดที่ใช้อยู่ซึ่งไม่สามารถทำงานได้

โค้ด: เลือกทั้งหมด

search7 = browser.find_element_by_name('post')
search7.click()

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 10:51 am
โดย nuattawoot
สำหรับคลาสที่มี css_selector

โค้ด: เลือกทั้งหมด

driver.find_element_by_css_selector(".step__footer__continue-btn.btn").click() 
by_class_name gets only one class

โค้ด: เลือกทั้งหมด

driver.find_element_by_class_name("step__footer__continue-btn").click()
type='submit' and name='button' are <button> แอตทริบิวต์แท็กที่ไม่ใช่ div

โค้ด: เลือกทั้งหมด

driver.find_element_by_xpath("//button[@type='submit'][@name='button']").click() 

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 12:56 pm
โดย natnicha001
สำหรับคลาสที่มี css_selector

โค้ด: เลือกทั้งหมด

browser.find_element_by_css_selector("input.button1.default-submit-action").click()
by_class_name gets only one class

โค้ด: เลือกทั้งหมด

browser.find_element_by_class_name("button1").click()
type='submit' and name='button' are <button> แอตทริบิวต์แท็กที่ไม่ใช่ div

โค้ด: เลือกทั้งหมด

browser.find_element_by_xpath("//input[@type='submit'][@name='post']").click()

browser.find_element_by_xpath('//*[@id="postform"]/div[2]/div/fieldset/input[5]').click()
ลองหมดทั้ง 3 แบบแล้วค่ะ แต่ก็ยังไม่ได้

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 6:35 pm
โดย nuattawoot
มันขึ้นว่าอะไรครับ เอา Log หรือ Error มาดูครับ

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 6:41 pm
โดย natnicha001

โค้ด: เลือกทั้งหมด

/usr/bin/python2.7 /home/com010/m050/test1.py
Traceback (most recent call last):
  File "/home/com010/m050/test1.py", line 38, in <module>
    browser.find_element_by_xpath('// *[ @ id = "postform"] / div[2] / div / fieldset / input[4]').click()#โพส
  File "/home/com010/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 77, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/home/com010/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 493, in _execute
    return self._parent.execute(command, params)
  File "/home/com010/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute
    self.error_handler.check_response(response)
  File "/home/com010/.local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Element is not clickable at point (744, 720)
  (Session info: chrome=61.0.3163.79)
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.10.0-33-generic x86_64)

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 7:21 pm
โดย nuattawoot
รูปแบบการเขียนหน้าจะผิด
ลองใช้ดูครับ

โค้ด: เลือกทั้งหมด

browser.find_element_by_name("post").click()

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 13/09/2017 7:25 pm
โดย natnicha001
ได้ลองแล้วค่ะ แต่ก็ยังไม่ได้ :(

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 14/09/2017 7:10 am
โดย mindphp
ลอง
driver.find_element_by_xpath
หรือ
driver.find_element_by_css_selector
หรือ
driver.find_element_by_id
หรือ
driver.find_element_by_name
แล้วด้วย
.submit()
เช่น

โค้ด: เลือกทั้งหมด

driver.find_element_by_name("ชื่อฟอร์ม").submit()
ถ้าฟอร์มตั้งชื่อไว้

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 14/09/2017 12:04 pm
โดย natnicha001
ลองแล้วค่ะ ไม่ได้

โค้ด: เลือกทั้งหมด

browser.find_element_by_name("post").submit()

Re: การเขียน selenium webdriver ด้วยภาษา python

โพสต์แล้ว: 14/09/2017 5:09 pm
โดย mindphp
mindphp เขียน:ลอง
driver.find_element_by_xpath
หรือ
driver.find_element_by_css_selector
หรือ
driver.find_element_by_id
หรือ
driver.find_element_by_name
แล้วด้วย
.submit()
เช่น

โค้ด: เลือกทั้งหมด

driver.find_element_by_name("ชื่อฟอร์ม").submit()
ถ้าฟอร์มตั้งชื่อไว้
natnicha001 เขียน:ลองแล้วค่ะ ไม่ได้

โค้ด: เลือกทั้งหมด

browser.find_element_by_name("post").submit()
element ชื่อ Post ไม่น่ามี ในฟอร์มนั้นครับ
ลองเอา Error ที่เจอ มาลงด้วยซิครับ
บอกแค่ว่าลองแล้วไม่ได้ คนที่อยากช่วยก็ไม่รู้จะช่วยอย่างไร
และได้ลอง find_element_by ค่าอื่นๆ หรือ ยัง ?