我正在使用send_keys
填充selenium中的文本字段。但是,文本显示需要几秒钟的时间。
我想快点。
这是我当前的xpath和sen_keys。
post_box = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div[1]/form/div/div[1]/div/div/div[1]/div/div[2]/div[1]/div[1]/div[1]/div/div/div/div/div[2]/div/div/div/div"))).send_keys(self.textContents)
这是我使用的html
<div data-offset-key="a467s-0-0" class="_1mf _1mj"><span data-offset-key="a467s-0-0"><br data-text="true"></span></div>
提前谢谢。
对于Selenium来说,遍历基于xpath的长路径可能需要更多的计算时间。
一个简单的解决方案是使用相对xpath,如下所示:
//div[@attributeA='attributeA_value' and @attributeB='attributeB_value'][@attribute='attributeC_value']
示例
作为类似<div>
的示例:
<div class="entry" id="element_id" value="element_value"></div>
您的有效xpath是:
//div[@class='entry' and @id='element_id'][@value='element_value']
更新你的代码块将看起来像:
post_box = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='entry' and @id='element_id'][@value='element_value']"))).send_keys(self.textContents)