ตัวอย่าง Test script สำหรับรันเทส web แบบ Headless mode ตามด้านล่างเลยค่ะ
หาก Run แล้วจะพบว่าไม่มี Chrome
Browser เปิดขึ้นมาให้กวนใจอีกต่อไป แต่เมื่อเข้าไปดูใน Test
Report ก็จะพบว่ายังสามารถ Run Automated Test ได้ถูกต้องด้วยค่ะ
QuerySelector เมื่อต้องการ query element ที่อยู่ภายใน web component จะต้องใช้ this.el.shadowRoot.querySelector() เนื่องจาก DOM ภายใน web component อยู่ภายใน shadowRoot
Global Styles จะต้องใช้ CSS custom properties
css selector สำหรับ web component element คือ “:host” selector
โดยทั่วไป จะเก็บ styles ไว้ภายไต้ ชื่อ tag ของ component นั้น
my-element {
div {
background: blue;
}
}
ในกรณีของ Shadow DOM อยู่ภายใต้ tag :host
:host {
div {
background: blue;
}
}
Scoped CSS
สำหรับ browser ที่ไม่สนับสนุน Shadow DOM, web component ที่สร้างโดย Stencil จะกลับไปใช้ scoped CSS แทนที่จะ load Shadow DOM polyfill ที่มีขนาดใหญ่ Scoped CSS จะทำการกำหนดขอบเขต CSS ให้กับ element โดยอัตโนมัตตอน runtime
ใน JSX สามารถใช้ array operators : map ในการทำงานแบบ loop จากตัวอย่างด้านล่าง มี lists ของ todo object ใน this.Objects ซึ่ง map function ทำหน้าที่ loop ในแต่ละ todo object ใน this.Objects แล้วสร้าง new JSX sub tree และ add เข้าไปใน array ที่จะ return ออกจาก map function ซึ่งจะเพิ่มเข้าไปใน JSX tree ด้านนอกนั่นคือ div element
from django.http import HttpRequest, HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json
# Create your views here.
@csrf_exempt
def sayHi(request):
j = json.loads(request.body)
x = { "fulfillmentText": "This is a text response"
}
return HttpResponse(json.dumps(x))
ในส่วนนี้ จะ import packages ต่อไปนี้
HttpRequest เพื่อรับ Input ผ่าน HTTP
HttpResponse เพื่อตอบ Output ผ่าน HTTP
csrf_exempt เพื่อบอกว่า ยอมให้ทำงานผ่าน HTTP POST โดยไม่ต้องมี CSRF Token (ถ้าไม่ใส่ อยู่ ๆ จะส่ง POST เข้ามาไม่ได้ )
json เพื่อจัดการ JSON object
จากนั้น สร้าง Function ชื่อ “sayHi” มี function ที่เรียกใช้งานดังนี้