我使用Selenium Python绑定来查找一些元素。 在某些地方我需要使用execute_script方法。 热来获取执行此脚本的返回值吗?
所以我说:
browser = driver.Chrome() #for example
script = "document.getElementById('element')"
browser.execute_script(script)
如何从该脚本接收python日志或变量中的值?像元素的ID,文本等?
答案 0 :(得分:0)
您可以在execute_script中使用return语句。
browser = driver.Chrome() #for example
script = "document.getElementById('element').length" #length is for example
browser.execute_script("retrun {}".format(script))
答案 1 :(得分:0)
我遇到一个问题,其中硒无法找到某些元素,但是chrome上的 JavaScript控制台找到了它。
因此,我尝试在execute脚本方法中添加“ 返回”字符串,在您的情况下为:
browser = driver.Chrome()
myElement = browser.execute_script("return document.getElementById('element_id')")
您也可以像使用 Selenium Web元素一样执行其他操作。
示例:
browser = driver.Chrome()
elementList = browser.execute_script("return document.getElementsByClassName('element_class_name')")
elementList[0].click() # Clicks the first element from list
我希望这会有所帮助!
答案 2 :(得分:-1)
来自js doc(可以在那里找到python api)
如果脚本有返回值(即如果脚本包含a return语句),然后将采取以下步骤 解析此函数的返回值: - 对于HTML元素,该值将解析为webdriver。 WebElement - 空和未定义的返回值将解析为null - 布尔值,数字和字符串将按功能解析而解析 他们的字符串表示 - 对于数组和对象,每个成员项 将根据上述规则进行转换
P.S。为什么需要使用executeScript查找元素?