Je dois vérifier qu'une image est affichée sur la page en utilisant du sélénium en python.
Par exemple, examinons le logo dans le coin supérieur gauche de la page https://openweathermap.org/.
J'utilise execute_script et mon code est :
def test_image(driver):
driver.get('https://openweathermap.org/')
time.sleep(10)
image = driver.find_element(By.CSS_SELECTOR, "#first-level-nav > li.logo > a > img")
print(image)
print(driver.execute_script("return (typeof arguments[0].naturalWidth!=\"undefined\");", image))
print(driver.execute_script("return (typeof arguments[0].naturalWidth>0);", image))
print(driver.execute_script("return (arguments[0].naturalWidth);", image))
J'ai obtenu ce résultat :
True False 431
Pourquoi typeof argument[0].naturalWidth>0 是 False,而 arguments[0].naturalWidth 是 431 ? Et l'image s'affiche correctement sur la page.
Mise à jour : Le code correct est :
print(driver.execute_script("return (arguments[0].naturalWidth>0);", image))
typeof运算符优先于>。