使用selenium将python从mac迁移到pc
对我来说,这应该是非常直接的,但我有一些问题 我有一些python代码可以在我的mac上完美地运行(最新的OS py27),但是现在我正试图将这些代码带到我的pc上,以便计划和完全自动化(win8 py27),我在代码上遇到了一些错误,否则就可以正常工作 代码如下所示:使用selenium将python从mac迁移到pc,python,macos,selenium,xpath,cross-platform,Python,Macos,Selenium,Xpath,Cross Platform,对我来说,这应该是非常直接的,但我有一些问题 我有一些python代码可以在我的mac上完美地运行(最新的OS py27),但是现在我正试图将这些代码带到我的pc上,以便计划和完全自动化(win8 py27),我在代码上遇到了一些错误,否则就可以正常工作 代码如下所示: def getElementsByxPath(mydriver,xPath,argKeys): try: a = mydriver.find_elements_by_xpath(xPath);
def getElementsByxPath(mydriver,xPath,argKeys):
try:
a = mydriver.find_elements_by_xpath(xPath);
a.send_keys(argKeys)
#error caused here. mac handles error on sending keys while it seems windows does not.
return a;
except:
print "Unexpected error:", sys.exc_info()[0];
return 0;
elem = olrHelper.getElementsByxPath(mydriver, ".//tr[@class='list-item']");
for e2 in elem:
time.sleep(2)
tryClick(e2)
try:
listingID = e2.get_attribute("data-id") #listingID is populated when I debug
#additionally e2.is_displayed()==True
field1 = extractAddress(protectedExtractText(olrHelper.getElementByxPath(mydriver, ".//h1", "")))
#field1 is not populated and returns my default exception value. very odd.
except:
print 'error'
在我的mac上,这段代码有效(selenium)。在我的电脑上,这不起作用(selenium)
在PC上找不到xpath元素
有没有人经历过类似的事情?我认为我可以很容易地实现跨操作系统的功能
谢谢我的第一个猜测是,问题根本不在于Python代码,而在于HTML中的差异,因为它是由不同操作系统上的浏览器“修复”的。换句话说,我怀疑其中一个浏览器正在稍微修改接收到的HTML以使渲染更容易。我会在这两个文件上“查看源代码”并WinDiff它们。嘿,不幸的是,我在PC上看到的元素与我在MacLouis上看到的定义完全相同。进一步说,我会创建一个本地HTML文档,它是仍然会创建错误的完整文档的最简单版本。通过这样做,您可以分离出错误的核心。此外,我建议将您的函数重命名为更准确的函数,如SendKeysNodePath。这真的是一个答案,还是一个注释?这是一种方法,希望是一种有用的方法。这个站点应该是关于帮助的,而不是关于定义的吹毛求疵。它用and标记,但是
getElementsByxPath
在Selenium的Python绑定中不是一个可用的调用(我浏览了整个源代码)。还有一些对代码的调用似乎是您的(例如,extraAddress(…)
)。您的try
语句也不会终止。您应该更新您的问题,以便它显示当您仅使用实际的Selenium调用时问题是如何发生的,并确保代码处于可执行状态。删除所有try/except
块并发布完整的错误回溯。谢谢。(@Louis line 5是他使用selenium python绑定查找元素的地方。)你真的应该显示回溯。当它崩溃时,argKeys
是什么?