Selenium(PYTHON) 如何操作属性
Selenium(PYTHON) How to manipulate attributes
所以这更像是一个概念性问题,但我无法理解我是否可以操纵 class 的属性,我知道如何浏览元素,但如果我想在我的例子中,隐藏元素,在下面的代码中,我有一个 for 循环 运行 通过一堆 class 不断 dis/re 出现在屏幕上的硬币,所以我有在我可以 运行 遍历所有索引之前对它们进行计数,因此 'count = len' 但我做了一个打印语句,甚至显示代码 运行 正确地遍历了所有索引,但它们不会隐藏在屏幕,我做错了什么
count = len(driver.find_elements_by_class_name('coinlist'))
for x in range(count):
x += 1
flip = driver.find_element_by_xpath(f"//ul[@class='coinlist']/div[{str(x)}]")
flip.isdisplayed() = false
必须使用driver.execute_script()
配合JS修改DOM。
count = len(driver.find_elements_by_class_name('coinlist'))
for x in range(count):
x += 1
flip = driver.find_element_by_xpath(f"//ul[@class='coinlist']/div[{str(x)}]")
driver.execute_script("arguments[0].setAttribute('style','visibility:hidden;');", flip)
应该 做到这一点
回溯(最近调用最后):
文件“C:\Users\adamj\OneDrive\Desktop\python\test.py”,第 38 行,位于
driver.execute_script("arguments[0].setAttribute('style',visibility:hidden;');", flip)
文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 634 行,在 execute_script
return self.execute(命令,{
文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 321 行,在执行中
self.error_handler.check_response(回应)
文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response 中
提高 exception_class(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.JavascriptException:消息:javascript 错误:参数列表后缺少 )
(会话信息:chrome=87.0.4280.141)
所以这更像是一个概念性问题,但我无法理解我是否可以操纵 class 的属性,我知道如何浏览元素,但如果我想在我的例子中,隐藏元素,在下面的代码中,我有一个 for 循环 运行 通过一堆 class 不断 dis/re 出现在屏幕上的硬币,所以我有在我可以 运行 遍历所有索引之前对它们进行计数,因此 'count = len' 但我做了一个打印语句,甚至显示代码 运行 正确地遍历了所有索引,但它们不会隐藏在屏幕,我做错了什么
count = len(driver.find_elements_by_class_name('coinlist'))
for x in range(count):
x += 1
flip = driver.find_element_by_xpath(f"//ul[@class='coinlist']/div[{str(x)}]")
flip.isdisplayed() = false
必须使用driver.execute_script()
配合JS修改DOM。
count = len(driver.find_elements_by_class_name('coinlist'))
for x in range(count):
x += 1
flip = driver.find_element_by_xpath(f"//ul[@class='coinlist']/div[{str(x)}]")
driver.execute_script("arguments[0].setAttribute('style','visibility:hidden;');", flip)
应该 做到这一点
回溯(最近调用最后): 文件“C:\Users\adamj\OneDrive\Desktop\python\test.py”,第 38 行,位于 driver.execute_script("arguments[0].setAttribute('style',visibility:hidden;');", flip) 文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 634 行,在 execute_script return self.execute(命令,{ 文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 321 行,在执行中 self.error_handler.check_response(回应) 文件“C:\Users\adamj\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response 中 提高 exception_class(消息、屏幕、堆栈跟踪) selenium.common.exceptions.JavascriptException:消息:javascript 错误:参数列表后缺少 ) (会话信息:chrome=87.0.4280.141)