Selenium / Python-带空格的类名无法本地化

时间:2018-11-07 03:54:56

标签: python selenium spaces classname

我在查找元素时遇到麻烦。我正在尝试找到它,并在该字段中输入一些数据。我注意到类名具有空格,并且ID是自动生成的(将它们与其他表单进行比较),所以不能使用ID进行自动化,因为我想自动创建新表单,并且每次都会使用'Description'字段时间。

下面是我要查找的“描​​述”字段的html。

<input size="15" maxlength="255" class="acitem description s-description ui-autocomplete-input" spinner="/assets/spinner-48c6e73f2bbe9ea753f7f8e5410541a8138d19d657ddd532b2765335ed3d62bf.gif" auto_complete="true" data-autocomplete-url="/items/auto_complete" data-autocomplete-renderer="item_autocomplete_renderer" data-autocomplete-delay="250" type="text" name="invoice[invoice_lines_attributes][68345][description]" id="invoice_invoice_lines_attributes_68345_description" autocomplete="off">

到目前为止,我使用的代码已失败。

test_1 = driver.find_element_by_css_selector('.acitem.description.s-description.ui-autocomplete-input')
test_1.send_keys("HELLO WORLD")

test_2 = driver.find_element_by_css_selector("input[class='acitem description s-description ui-autocomplete-input']")
test_2.send_keys("HELLO WORLD")

test_3 = Select(driver.find_element_by_xpath("//*[@class='acitem description s-description ui-autocomplete-input']"))
test_3.send_keys("HELLO WORLD")

我是否弄错了代码,或者类名中有空格吗?谢谢。

3 个答案:

答案 0 :(得分:0)

尝试使用xpath

//input[starts-with(@id,'invoice_invoice_lines_attributes_')]

答案 1 :(得分:0)

在几乎所有情况下,都可以通过XPATH访问DOM中的所有元素。 在您的情况下,我将执行以下操作:

element = driver.find_element_by_xpath("//input[@id='acitem description s-description ui-autocomplete-input']")

答案 2 :(得分:0)

感谢您的所有帮助。我通过使用start-with和contains来解决。 下面是我的代码。

invc_desc =driver.find_element_by_xpath("//input[starts-with(@class,'acitem') and contains(@class,'s-description')]")
invc_desc.clear()
invc_desc.send_keys("HELLO WORLD")