Aller au contenu
Cybero

JDD du zéro

Messages recommandés

Nous on essaye de pousser nos dinosaures à adopter Docker. Je crois que les plus gros freins sont au dessus... Les Devs sont chaud patate. Par contre les responsables de process... « mais et le comité dés changements :?: » 

Le concept de l’intégration continue, ils ont du mal :p 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah nous ça va ça les cycles de vie sont (à peu près) bien gérés :)

(Grace à nous :siffle:)

Partager ce message


Lien à poster
Partager sur d’autres sites

ça commence à me brouter les icônes en ASCII..... purée de framework, quelle idée ??!
Toutes les icônes sont affichées de la sorte dans le code source... et je suis sensé pouvoir les attraper via xpath :gnarf:

 

image.png

 

 

ICO_AFFE				\xE908
ICO_MODIF  				\xE929
ICO_LOUPE  				\xE925
ICO_VALIDER				\xE942

 

Mais qu'elle est la logique :?:

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je suis preneur d'une logique dans l'attribution des codes

Certes je vais retrouver mes petits en recopiant cet énum mais à la moindre évol... :red:

+ Je n'arrive pas à comprendre la logique du rendu html, je soupçonne les icônes d'être (en plus...) codées dans le css

 

Spoiler

public enum IcoChartFont {
	ICO_AFFE(0xe908), ICO_AIDE(0xe909), ICO_BIGGER(0xe90a), ICO_CALCU(0xe90b), ICO_CALENDRIER(0xe90c), ICO_CALENDRIER2(0xe90d), ICO_CB(
			0xe90e), ICO_CHEQUE(0xe90f), ICO_COLORS(0xe910), ICO_CROIX(0xe911), ICO_DECLA(0xe912), ICO_DECLACALCU(0xe913), ICO_DELAI(
			0xe914), ICO_ERROR(0xe915), ICO_ESTIME(0xe916), ICO_EUR(0xe917), ICO_EXCEPT(0xe918), ICO_EXPORT(0xe919), ICO_FAV(0xe91a), ICO_FILTRE(
			0xe91b), ICO_HISTORIQUE(0xe91c), ICO_HOME(0xe91d), ICO_INFO(0xe91e), ICO_JOINDRE(0xe91f), ICO_JOINDRE2(0xe920), ICO_LIST_CLOSE(0xe921), ICO_LIST_CLOSE2(
			0xe922), ICO_LIST_OPEN(0xe923), ICO_LIST_OPEN2(0xe924), ICO_LOUPE(0xe925), ICO_MAIL(0xe926), ICO_MAJO(0xe927), ICO_MAJO2(0xe928), ICO_MODIF(
			0xe929), ICO_MOINS(0xe92a), ICO_MOINS2(0xe92b), ICO_OK(0xe92c), ICO_OUTILS(0xe92d), ICO_PHOTO(0xe92e), ICO_PLUS(0xe92f), ICO_PREC(
			0xe930), ICO_PRINT(0xe931), ICO_REDUC(0xe932), ICO_REDUC2(0xe933), ICO_REFRESH(0xe934), ICO_REMB(0xe935), ICO_REMISE(0xe936), ICO_REVENIR(
			0xe937), ICO_RT(0xe938), ICO_SMALLER(0xe939), ICO_SUIV(0xe93a), ICO_TABLEDEFAULT(0xe93b), ICO_TABLESMALL(0xe93c), ICO_TAUX(0xe93d), ICO_TAUX2(
			0xe93e), ICO_TRANSFERT(0xe93f), ICO_TXT(0xe940), ICO_TXT2(0xe941), ICO_VALIDER(0xe942), ICO_VALIDER2(0xe943), ICO_VIREMENT(
			0xe944), ICO_XPF(0xe945);
	
	private int codepoint;

	IcoChartFont(final int codepoint) {
		this.codepoint = codepoint;
	}

	public int getCodepoint() {
		return codepoint;
	}

	public String getHtml() {
		return "&#x" + Integer.toHexString(codepoint) + ";";
	}
}

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je n'ai pas compris, tu cherches une logique à l'attribution des codes ? 

Pourquoi Aide = 909 , bigger = 90a , etc ... ? 

Pourquoi veux-tu une logique derrière tout ça ? 

 

En ascii a = 97, c'est lié à une table de paramétrage, je pense qu'ils ont fait pareil ici non ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Il y a effectivement de grandes chances qu’ils aient coller ça directement dans la css.

A part noter la table de correspondance dans un coin... 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 54 minutes, petiseb a dit :

Pourquoi veux-tu une logique derrière tout ça ? 

 

Je sais pas moi quand je dev, j'ai une certaine logique :roll:

Ya déjà des tables pour cela, des officielles je veux dire, pourquoi en avoir pondu encore une nouvelle ?
Et puis afficher       dans le source c'est d'un pratique

Surtout qu'avec leur logique demain rien ne les empêche de changer arbitrairement un code et mes automatismes... :dtc:

Sérieux, aujourd'hui ya des façon bien plus élégants de gérer des icônes

 

Bref :mrgreen:

Modifié par Cybero

Partager ce message


Lien à poster
Partager sur d’autres sites

N’importe quel framework le gère... (bootstrap, fontawsome,...)

je ne vois effectivement aucun intérêt encore du code imaintenable mais faut pas dire ça, ça pourrait froisser des gens :roll: 

Partager ce message


Lien à poster
Partager sur d’autres sites

ça vous parle les xpath ou pas du tout ?

Partager ce message


Lien à poster
Partager sur d’autres sites

De vieux (très vieux) souvenirs de xml...

Faut que tu extrait quelque chose ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Yep

Pour faire court et sans contexte je fais du xpath dans une page html avec le cas simple ci -dessous

[......]
<label for="xxx">Mon label</label>
[......]
<input type="text" name="plop" id="xxx" value="Ma valeur azerty">
[......]

Potentiellement le label et l'input liés par le for peuvent être à des endroits complètement différents du DOM
(Ce qui abjecte, j'en conviens mais ça ce n'est pas moi :roll:)

Le but est à partir de Mon label récupérer l'input text correspondant au for par son id

Je sais tout faire mais je pense que le moteur xpath ne suit pas ma logique :p

 

// Récupérer l'attribut for
$x(".//*[text()='Mon label' and @for]/@for")
// Renvoie l'attribut for.... ok première étape

// Récupérer la valeur de l'attribut for
$x("string(.//*[text()='Mon label' and @for]/@for)")
// Renvoie xxx déjà plus intéressant

// Récupérer l'input par son id, easy...
$x(".//input[@id='xxx']")

// Mixons les 2 maintenant...
$x(".//input[@id=string(.//*[text()='Mon label' and @for]/@for)]")
// Ne renvoie rien :-(

 

Je pense qu'il s'emmêle dans l'ordre d'exécution

Je suis preneur de toute idée

 

Pour ne rien casser / développer en plus et me brancher sur la mécanique existante il faut que ça rentre en un seul xpath :red:

(Sinon je dev pour faire en 2 temps mais j'aimerais m'en passer

Partager ce message


Lien à poster
Partager sur d’autres sites

Le parsing xml 🤮

 

A la louche comme ça j’aurai tendance à dire qu’il n’arrive pas à parser correctement le @id= sans les guillemets qui suivent. T’as essayé de tricher en mettant des crochets et une fonction du type contrains ?

 

Pas beaucoup plus d’idées.... Ça fait longtemps....

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas bête !

Unitairement ça fonctionne ça me ramène bien mon champ

Par contre si j'ai 5 inputs ça me ramène les 5 :-/

Voici ma requête

 

// Test de base en passant l'id attendu OK ne me ramène que le champ désiré
$x(".//input[@id[contains(.,string('xxx'))]]")

//  Me ramène tous les inputs :-(
$x(".//input[@id[contains(.,string(.//*[text()='Mon label' and @for]/@for))]]")

// Idem avec des [starts-with(...

// Ou comme ça aussi:
$x(".//input[contains(@id,string(.//*[text()='Mon label' and @for]/@for))]")

 

Modifié par Cybero

Partager ce message


Lien à poster
Partager sur d’autres sites

🤔 

 

et un truc du genre ....

 

@id[string()=//...]

 

ça passe pas non plus :?: 

 

Finalement je préfère mon cluster Kubernetes :lol: 

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme cela tu veux dire ?

Si oui ça ne donne rien :(

 

$x(".//input[@id[string()=//*[text()='Mon label test']/@for]]")

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je fais tous mes tests dans la console Chrome depuis hier

Dans l'après-midi je me suis fait valider mes xpath (mon dernier essai d'hier + celui de ce matin suite piste @yeujik) qui semblent correct

Du coup doute :1look2: et du coup je teste non plus avec du xpath dans Chrome et je test directement dans Selenium

Un peu long pour mettre en place un court test unitaire mais bon

Dans Selenium ceci fonctionne très bien :roll:

 

$x(".//input[@id=string(.//*[text()='Mon label' and @for]/@for)]")
// Simplifié en 
$x(".//input[@id=string(.//*[text()='Mon label']/@for)]")

 

Notre Selenium se base un driver Chrome un peu plus vieux (Version 62)

Bon hummm... je crois que je ne vais pas chercher plus loin hein :red:

 

Je validerai au boulot demain....

 

Pour trace demain :p

 

Révélation

Fichier html de test


<html>
   <label for="xxx">Mon label xxx</label> <input type="text" id="xxx" placeholder="Value for xxx"><br>
   <label for="yyy">Mon label yyy</label> <input type="text" id="yyy" placeholder="Value for yyy"><br>
   <label for="ogo">Mon label OGO</label> <input type="text" id="ogo" placeholder="Value for OGO Yes !"><br>
   <label for="zzz">Mon label zzz</label> <input type="text" id="zzz" placeholder="Value for zzz"><br>
   <label for="zzz">Mon label zzz</label> <input type="text" id="zzz" placeholder="Value for zzz2222"><br>
   <label for="zzz">Mon label zzz</label> <input type="text" id="zzz" placeholder="Value for zzz333"><br>
   <label for="test">Mon label test</label> <input type="text" id="test" placeholder="Value for test"><br>
   <label for="pppppp">Mon label autre</label> <input type="text" id="pppppp" placeholder="Value for autre"><br>
</html>

 

Dans le TU:


List<WebElement> elements = driver.findElements(By.xpath("//input[@id=string(//*[text()='Mon label zzz']/@for)]"));
for (WebElement el : elements) {
	System.out.println("test 1 --- " + el.getAttribute("placeholder"));
}
System.out.println("----------------");

elements = driver.findElements(By.xpath("//input[@id=string(//*[text()='Mon label OGO']/@for)]"));
for (WebElement el : elements) {
	System.out.println("test 2 --- " + el.getAttribute("placeholder"));
}
System.out.println("----------------");

Console:


Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 26864
Only local connections are allowed.
Successfully connected
test 1 --- Value for zzz
test 1 --- Value for zzz2222
test 1 --- Value for zzz333
----------------
test 2 --- Value for OGO Yes !
----------------

 

 

Va comprendre....

Partager ce message


Lien à poster
Partager sur d’autres sites

Les joies de l’informatique divinatoire :red: 

Partager ce message


Lien à poster
Partager sur d’autres sites

Un de nos gifs préférés dans l'équipe :lol:

 

shia labeouf magic GIF

 

Partager ce message


Lien à poster
Partager sur d’autres sites

On le connait bien aussi ce gif :ptdr: 

Partager ce message


Lien à poster
Partager sur d’autres sites

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...

Information importante

En utilisant ce site, vous acceptez notre Politique de confidentialité et nos Conditions d’utilisation
Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.