nightmare js || clicka på jobbig länk <a></a>

Trädvy Permalänk
Medlem
Registrerad
Sep 2009

nightmare js || clicka på jobbig länk <a></a>

Hej, är det någon som vet hur man ska kunna klicka på följande <a> i nightmare js?

<a id="RANDOM_ID" href="changes_each_time>constant_text</a>

som jag försökt visa här nu med <a> tagen är det bara texten mellan <a> och </a> som är konstant, så min fråga är hur skulle man kunna klicka eller använda denna <a> i nightmare js?

Tack för svar!

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Trädvy Permalänk
Medlem
Registrerad
Okt 2006

Detta kanske fungerar?

.click('a:contains("constant_text")');

xbox live

Trädvy Permalänk
Medlem
Registrerad
Sep 2009

tyvärr så funkade det inte, gillade dock förslaget!

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007

Kan du inte använda attribut som du kan sedan kolla mot?
Samt binder du efter att DOM är klar eller innan/under tiden?

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Registrerad
Sep 2009

Vet inte varför (då det inte är jag som gjort sidan och känner inte till backend:et), men attributen i taggen ändras varje gång jag laddar om sidan, det ända som är konstant är texten mellan <a> och </a>.

DOM är färdigladdat när jag försöker använda den.

exempel på hur jag väljer attribut från en input tag kan jag visa (kanske hjälper) (väldigt ny inom nightmare så jag är inte så kunig):

.click("input[name="'submit'"]")

pilen på bilden visar vad det är jag försöker klicka på:

screenshotet är tagget med nightmare js också så jag vet att den är färdigladdad.

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6

Trädvy Permalänk
Medlem
Plats
#Archlinux
Registrerad
Jun 2007
Skrivet av asdfgh:

Vet inte varför (då det inte är jag som gjort sidan och känner inte till backend:et), men attributen i taggen ändras varje gång jag laddar om sidan, det ända som är konstant är texten mellan <a> och </a>.

DOM är färdigladdat när jag försöker använda den.

exempel på hur jag väljer attribut från en input tag kan jag visa (kanske hjälper) (väldigt ny inom nightmare så jag är inte så kunig):

.click("input[name="'submit'"]")

pilen på bilden visar vad det är jag försöker klicka på:
https://s17.postimg.io/3zs7oytvj/Screenshot_from_2016_09_05_20_37_36.png
screenshotet är tagget med nightmare js också så jag vet att den är färdigladdad.

jo men skapa eget attribut i dom elementet för att sedan hooka på det. Dvs skapa exempelvis data-menu="book-group-room"

och sedan kör .click('a[data-menu="book-group-room"]') eller något liknande.

Nu är jag skadad av JQuery men är click med contains som selector i vanliga js alt nightmare?

Alternativt bindar du alla <a> och sedan tar vanliga js funktioner för att få innerText och beslutar senare i skedet vad som skall ske beroende på contents. Fullt men.....

Arch - Makepkg, not war -||- Asus Crosshair Hero VI -||- GSkill 16GiB DDR4 15-15-15-35-1T 3600Mhz -||- AMD 1600x @ 4.1GHz -||- nVidia MSI 970 Gaming -||- Samsung 850 Pro -||- EVEGA G2 750W -||- Corsair 570x -||- Asus Xonar Essence STX -||- Sennheiser HD-650 -||
Arch Linux, one hell of a distribution.

Trädvy Permalänk
Medlem
Registrerad
Sep 2009

Klockrent du är ett geni!
Jag löste det genom:

.evaluate(function(){ document.getElementsByClassName("tab")[3].childNodes[1].setAttribute("data-menu", "book-group-room"); }) .click("a[data-menu='book-group-room']")

Смерть -это решение всех проблем. Нет человека - нет проблемы
Comp1: Ubuntu 16.04 Comp2: Arch Linux
Comp3: Ubuntu Server 16.04 Comp4: Centos 6.5
Comp5: Linux mint 16 Comp6: Raspberry pi (olika OS hela tiden)
Phone: Motorola Google Nexus 6