提问者:小点点

无法访问网页上的动态元素


我无法访问网页框上的文本框,它是一个动态元素。我试图通过xpath上的许多属性过滤它,但似乎id和name上更改的数字是元素xpath唯一唯一的部分。我尝试的所有过滤器都显示至少3个元素。我已经尝试了2天,这里真的需要一些帮助。

from selenium import webdriver
def click_btn(submit_xpath): #clicks on button
    submit_box = driver.find_element_by_xpath(submit_xpath)
    submit_box.click()
    driver.implicitly_wait(7)
    return

#sends text to text box
def send_text_to_box(box_xpath, text):
    box = driver.find_element_by_xpath(box_xpath)
    box.send_keys(text)
    driver.implicitly_wait(3)
    return

descr = 'Can't send this text'
send_text_to_box('//*[@id="textfield-1285-inputEl"]', descr)' #the number         
#here is the changeable part on the xpath 

编辑:它现在可以使用以下xpath//input[包含(@id,'extfield')和包含(@aria-readonly,'false')和包含(@class,'x-form-unid-field-default')]。希望我在这个元素上找到了一些特定的东西:


共1个答案

匿名用户

您可以使用部分字符串来查找元素,而不是精确匹配。也就是说,代替send_text_to_box('//*[@id="extfield-1285-inputEl"]', desr)'请尝试send_text_to_box('//*[包含(@id,"inputEl")]',desr)'

如果有多个元素在id中包含字符串“inputE1”,您应该寻找其他保持不变的东西(其他一些属性可能是)。否则,尝试找到其他一些元素,然后遍历到所需的输入。