我正在嘗試將一些變數傳遞給 js 執行程式,但沒有運氣。我已經嘗試了幾乎所有的東西,但是雖然它列印了變數,但執行程式在網頁上沒有做任何事情。
這是代碼:
strings = ["ABC","DEF"]
elems = [i.text for i in driver.find_elements_by_xpath(title)]
import itertools
from json import dumps
for string, elem in zip(strings, elems):
print(string, elem)
driver.execute_script("arguments[0].innerHTML = '{}'".format(string), elem)
# driver.execute_script("arguments[0].innerHTML = ' dumps(string)'", elem)
# driver.execute_script("arguments[0].innerHTML = arguments[1]", string, elem)
time.sleep(2)
uj5u.com熱心網友回復:
如果你想使用,innerHTML那么你應該使用i而不是i.text.
如果你想使用,arguments[1]那么你必須以execute_script(...)不同的順序使用值elem,string而不是string,elem
from selenium import webdriver
url = 'http://stackoverflow.com/'
driver = webdriver.Firefox()
driver.get(url)
strings = ["ABC", "DEF"]
title = '//title'
elems = driver.find_elements_by_xpath(title)
for string, elem in zip(strings, elems):
print(string, elem)
# WORKS
#driver.execute_script("arguments[0].innerHTML = '{}'".format(string), elem)
# WORKS - needs different order `elem, string` instead of `string, elem`
driver.execute_script("arguments[0].innerHTML = arguments[1]", elem, string)
#time.sleep(2)
順便提一句:
如果要將新文本附加到現有文本,title則應使用
"arguments[0].text = arguments[1]"
可能還需要在新舊文本之間添加空格
"arguments[0].text = ' ' arguments[1]"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/377636.html
上一篇:我收到一個錯誤:AttributeError:'WebElement'objecthasnoattribute'sendkeys'
