我目前正在嘗試將資訊發送到 Chrome 中的輸入欄位。使用 driver.find_element 函式時,我正在使用變數。
我試過的:
ProjectID = '"' str('driver.find_element(By.XPATH, "//input[@ID=' "'" '_obj__TIMESHEETITEMS_' str(rowCounter) '_-_obj__PROJECTID' "']" '").send_keys(' "'" str(nonProjects['Projects'][rowCounter-2]) "'" ')') '"'
應用變數后,應用 print(ProjectID) 時如下所示:
"driver.find_element(By.XPATH, "//input[@ID='_obj__TIMESHEETITEMS_2_-_obj__PROJECTID']").send_keys('OMSH001')"
我也試過沒有前面的引號:
ProjectID = str('driver.find_element(By.XPATH, "//input[@ID=' "'" '_obj__TIMESHEETITEMS_' str(rowCounter) '_-_obj__PROJECTID' "']" '").send_keys(' "'" str(nonProjects['Projects'][rowCounter-2]) "'" ')')
應用 print(ProjectID) 時看起來像這樣:
driver.find_element(By.XPATH, "//input[@ID='_obj__TIMESHEETITEMS_2_-_obj__PROJECTID']").send_keys('OMSH001')
我用以下方法呼叫變數:
driver.execute_script(ProjectID)
沒有引號我得到的錯誤是驅動程式沒有定義。應用引號時,該錯誤消失了,但程式不執行任何操作。
非常感謝任何幫助,因為我已經被這個錯誤困住了好幾天了。
uj5u.com熱心網友回復:
查看您的示例時,您似乎會嘗試在 execute_script 中使用 selenium api,這顯然是不可能的。
ProjectID = '"' str('driver.find_element(By.XPATH, "//input[@ID=' "'" '_obj__TIMESHEETITEMS_' str(rowCounter) '_-_obj__PROJECTID' "']" '").send_keys(' "'" str(nonProjects['Projects'][rowCounter-2]) "'" ')') '"'
driver.execute_script(ProjectID)
execute_script方法直接在您的瀏覽器中執行給定的 JavaScript 代碼,因此您想做的任何事情都必須是純 JavaScript。
在我看來,好像在您的示例中您首先不需要execute_script,因為您只直接呼叫 selenium api。
我無法完全理解您的代碼,但強烈建議將其簡化為如下內容:
xpath = "//input[@ID='{}{}_-_obj__PROJECTID]".format(_obj__TIMESHEETITEMS_, rowCounter)
element = driver.find_element(By.XPATH, xpath)
element.send_keys(str(nonProjects["Projects"][rowCounter - 2]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488500.html
