Selenium + Python – Bild überexecute_script prüfen
P粉899950720
P粉899950720 2024-04-03 09:32:15
0
1
563

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粉899950720
P粉899950720

Antworte allen(1)
P粉765570115

typeof 运算符优先于 >

typeof 431     === "number"
"number"   > 0 === false
typeof 431 > 0 === false
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage