重新显示硒元素后元素的位置正在改变

position of element is changing after re-showing selenium element

我正在对作者和锚标签执行相同的操作

查找元素的代码

element = driver.find_element('class_name','author')

隐藏元素的代码

driver.execute_script("arguments[0].style.display = 'None';", element)

显示元素的代码

driver.execute_script("arguments[0].style.display = 'block';", element)

问题 为什么在重新显示相同元素后作者姓名和关于元素位置发生变化?

网站 Link:https://quotes.toscrape.com/

作者姓名和正文link“about”在不同的两行中指定。我建议尝试隐藏整个 span

而不是仅仅使用 class 名称隐藏作者的行 同样的 Xpath 将是 xpath = "/html/body/div/div[2]/div[1]/div[1]/span[2]"

如果要保留文本“by”,则尝试指定单独的变量来查找两行的元素和hide/unhide他们单独。这不应改变 html 元素的结构。


试试这个,如果有效请告诉我。

https://www.w3schools.com/cssref/pr_class_display.asp

block 在下一行显示元素。完全删除 属性 或使用内联

driver.execute_script("arguments[0].style.display = undefined;", element)

driver.execute_script("arguments[0].style.display = 'inline';", element)