此html中的元素是动态的:
<textarea class="Medium" id="z46a662fd68e143128cd31e6978f63a5c"
name="Description" placeholder="" data-val-length="Character limit (8000)
exceeded" data-val-length-max="8000" data-val-editor-
id="z46a662fd68e143128cd31e6978f63a5c" data-val-position="0"></textarea>
我无法在我的脚本中多次使用此代码:
driver.find_element_by_css_selector('z46a662fd68e143128cd31e6978f63a5c')
使用下面的代码,我能够按名称找到元素 - 但无法使用send_keys来输入数据。
driver.find_element_by_name('Description')
我想知道这类问题的不止一种解决方法 - 提前谢谢。
答案 0 :(得分:2)
第一个语句不是一个合适的CSS选择器,因此它失败了。如果您想通过CSS选择,可以像这样指定:
driver.find_element_by_css_selector('textarea#z46a662fd68e143128cd31e6978f63a5c')
如果ID 静态:
,您可以按ID搜索driver.find_element_by_id('z46a662fd68e143128cd31e6978f63a5c')
然而,看起来您的ID是动态的,在这种情况下,按照名称查找,实际上是最好的方法。
要发送密钥,您可以:
driver.find_element_by_name('Description').send_keys("Hello")
如果这不起作用,请确保已加载页面并呈现textarea
。您可能需要使用Wait:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.Name, "Description"))
element.send_keys("Hello")