PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBACheckboxarCheckboxar
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2022-02-09 11:25
 
 Ändrad av ex16  på 2022-02-09 12:26:33

Hej. Skulle behöva lite hjälp igen efter att försökt och sökt om just detta. 

 

Jag använder mig av Selenium för att komma framåt på webbsidan med metoden Click i bland annat checkboxar. Ibland är en checkbox av någon anledning redan iklickad och då klickar makrot bort den igen, vilket gör att datan går förlorad. 

 

Jag behöver alltså något som kontrollerar om checkboxen redan är ifylld. Är den ifylld vill jag hoppa över det steget med Then GoTo. Annars ska makrot klicka i checkboxen. Alltså när data-test-checked="true" då ska makrot hoppa över det steget.

 

Så här ser htmlkoden ut: 

 class="css-z72zde-StartlistDisplayOptionsDialog-styles--displayOption col-md-4"> class="css-lc9nsn-Checkbox-styles--root-StartlistDisplayOptionsDialog-styles--checkbox"><input data-test-id="checkbox-vOdds" name="checkbox-vOdds" data-test-checked="true" type="checkbox" class="css-1vd1p89-Checkbox-styles—checkbox" checked=""><span class="css-1ract64-Checkbox-styles--icon"> ::before ::after span><span class="css-1hngy38-Checkbox-styles--label">V-Oddsspan>div> li>

Så här ser koden ut i makrot

 

Set Detaljer = cd.FindElementsByCss(".css-1ract64-Checkbox-styles--icon")(22)
Detaljer.Click





 

Nytt inlägg
 2022-02-11 07:34
 

Hej hej

Ser ut som att detaljer blir en samling och inte ett enskilt object, så när du tillämpar .click så gör du detta på samtliga checkboxar. Du behöver ett sätt att loopa elementen. 

For each mItem in detaljer

        if not mitem.iselected then

               mitem.click

        end if

next mitem

Om du vet att din samling bara innehåller ett object så kan du möjligtvis undersöka objectet direkt istället för att loopa. Enklast är att göra detta i ditt direktfönster under körläge, för du måste testa dig fram.

Jag hade börjat med:

?detaljer(0).isSelected

eller 

?detaljer(1).isSelected

Mvh

Christian

 

 

Nytt inlägg
 2022-02-12 10:49
 

Så här blev det till slut. Fick lägga till en ny variabel (Detalj) som fick leta upp elementetet 'name'. Kanske inte helt optimalt, men det fungerar i alla fall.

Set Detalj = cd.FindElementByCss("[name='checkbox-vOdds']")
If Not Detalj.IsSelected Then
Set Detaljer = cd.FindElementsByCss(".css-1ract64-Checkbox-styles--icon")(22)
Detaljer.Click
End If

Tack för hjälpen.
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBACheckboxarCheckboxar

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter