我試圖創建一個定義,允許我單擊一個對象而不管元素類型。爲了達到這個目的,我創建了一個包含我想運行的命令的變量。執行存儲在變量(Python> Webdriver)中的Selenium命令
def clickOnStaleElement(driver, objStrategy, element):
lhs, rhs = objStrategy.split(".", 1)
myCommand = "driver.find_element_by_"+rhs.lower()+"(\""+element+"\").click()"
我似乎無法弄清楚如何執行這個存儲在變量中的命令。我嘗試'driver.execute_script()'但收到WebDriverException。嘗試'exec()',&'eval()'導致文本掛起。我如何實現這一目標?有沒有更好的方式去實現這種行爲?我意識到我如何努力實現這種行爲可能並不理想,所以我打開更好的方式來完成相同的任務。如果可能的話,我不想爲每種元素類型創建'if/then'語句。
你不想做這樣的事情。它的不良習慣形成,並使代碼本身很難看/理解。再加上'exec'或'eval'幾乎是一個詛咒詞在這裏大聲笑。 – TehTris
夠公平的,@TehTris。這就是爲什麼我問第二個問題關於實現這一目標的更好方法。除了爲每種可能的元素類型創建if/then語句之外,我還希望做一些其他的操作。感謝您的回覆! – rwbyrd