使用 python selenium 在浏览器中编辑元素
Edit element in browser with python selenium
如何在使用 Python 2.7 Selenium 打开的浏览器中编辑元素。
假设我有这个元素:
<span id="some-random-number">100</span>
我知道您可以通过以下方式找到文本:
driver.find_element_by_id("some-random-number").text
但我希望元素的文本更改为 200,所以:
<span id="some-random-number">200</span>
我该怎么做?此外,除了文本之外,我还可以像这样编辑元素的属性:
<div class="something" style="transition: transform 1000ms bla bla bla"></div>
我的脚本可以读取属性并将 1000 毫秒编辑为不同的值吗?
试试这个:
element =driver.find_element_by_id("some-random-number")
driver.execute_script("arguments[0].innerText = '200'", element)
第二个问题:
div_elem = driver.some_method_to_find_element()
new_style = div_elem.get_attribute('style').replace('transform 1000ms', 'transform 200ms')
driver.execute_script('arguments[0].setAttribute("style", "%s")' % new_style, div_elem)
这是你的答案 -
更改元素的文本 -
driver.execute_script("document.getElementById('some-random-number').innerHTML = '200';");
或
element =driver.find_element_by_id("some-random-number")
driver.execute_script("arguments[0].innerText = '200'", element)
更改或设置属性值
element = driver.find_element_by_class_name("something");
driver.execute_script("arguments[0].setAttribute('style', 'transition: transform 2500ms bla bla bla')", element);
如何在使用 Python 2.7 Selenium 打开的浏览器中编辑元素。 假设我有这个元素:
<span id="some-random-number">100</span>
我知道您可以通过以下方式找到文本:
driver.find_element_by_id("some-random-number").text
但我希望元素的文本更改为 200,所以:
<span id="some-random-number">200</span>
我该怎么做?此外,除了文本之外,我还可以像这样编辑元素的属性:
<div class="something" style="transition: transform 1000ms bla bla bla"></div>
我的脚本可以读取属性并将 1000 毫秒编辑为不同的值吗?
试试这个:
element =driver.find_element_by_id("some-random-number")
driver.execute_script("arguments[0].innerText = '200'", element)
第二个问题:
div_elem = driver.some_method_to_find_element()
new_style = div_elem.get_attribute('style').replace('transform 1000ms', 'transform 200ms')
driver.execute_script('arguments[0].setAttribute("style", "%s")' % new_style, div_elem)
这是你的答案 -
更改元素的文本 -
driver.execute_script("document.getElementById('some-random-number').innerHTML = '200';");
或
element =driver.find_element_by_id("some-random-number") driver.execute_script("arguments[0].innerText = '200'", element)
更改或设置属性值
element = driver.find_element_by_class_name("something"); driver.execute_script("arguments[0].setAttribute('style', 'transition: transform 2500ms bla bla bla')", element);