web-dev-qa-db-fra.com

Comment définir l'affichage du style d'un élément html dans un test au sélénium?

Je reçois un élément comme 

cv_upload = driver.find_element_by_id('id_cv_upload')

Donc, je veux définir son affichage comme inline dans python lui-même. est-il possible avec python de définir l'affichage. J'ai essayé 

cv_upload.style.display = "inline"

qui me montre une erreur.
Une façon qui me vient à l’esprit est d’utiliser Jquery pour changer d’affichage, puis de l’exécuter à l’aide de driver.execute mais, malheureusement, je n’obtiens pas la bonne syntaxe pour le faire. Faites-moi savoir comment faire cela (la syntaxe.) Merci.

20
NIlesh Sharma

Enfin, découvrez le moyen de définir l'affichage d'un élément.

driver.execute_script("document.getElementById('id_cv_upload').style.display='block';")

en utilisant essentiellement driver.execute_script J'exécute un script Java pour définir le style d'un élément.

4
NIlesh Sharma

depuis que vous avez marqué jQuery - Vous pouvez utiliser la fonction css () pour définir/obtenir les attributs css

$('#id_cv_upload').css('display','inline');
46
ᾠῗᵲᄐᶌ

Si votre élément n'a pas d'identifiant, vous pouvez faire la même chose avec css 

en python: 

 driver.execute_script("document.querySelector('yourCSSLocatorGoesHere').style.display='block';")

en Java:

 WebDriver driver=new FirefoxDriver();   
    JavascriptExecutor js=(JavascriptExecutor) driver;
  driver.execute_script("document.querySelector('yourCSSLocatorGoesHere').style.display='block';")
0
Capital Terefe
$('#box').css(
{
  background: "#FF0000",
  "box-shadow": "1px 1px 5px 5px red",
  width: "100px",
  height: "100px",
  display: "block"
}
);

BSI.id (). SetStyle () vs jQuery.css () vs DOM natif

0
slva2000