Heim  >  Fragen und Antworten  >  Hauptteil

Selenium + Python – Bild überexecute_script prüfen

Ich muss mithilfe von Selenium in Python überprüfen, ob ein Bild auf der Seite angezeigt wird. Schauen wir uns zum Beispiel das Logo in der oberen linken Ecke der Seite https://openweathermap.org/ an. Ich verwende execute_script und mein Code lautet:

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))

Ich habe dieses Ergebnis erhalten:

True
False
431

Warum typeof argument[0].naturalWidth>0False,而 arguments[0].naturalWidth431? Und das Bild wird auf der Seite korrekt gerendert.

Update: Der korrekte Code lautet:

print(driver.execute_script("return (arguments[0].naturalWidth>0);", image))

P粉899950720P粉899950720179 Tage vor380

Antworte allen(1)Ich werde antworten

  • P粉765570115

    P粉7655701152024-04-04 00:48:58

    typeof 运算符优先于 >

    typeof 431     === "number"
    "number"   > 0 === false
    typeof 431 > 0 === false

    Antwort
    0
  • StornierenAntwort