我们如何在机器上为另一个用户设置环境变量?我想运行一些脚本sudo -u xyz但我需要在运行xyz用户脚本之前设置一些环境变量,这与我的登录不同.
有没有办法让a webDriverWait等待一些元素出现,并根据出现的元素采取相应的行动?
目前我WebDriverWait在try循环中执行一个操作,如果发生超时异常,我会运行替代代码,等待另一个元素出现.这看起来很笨拙.有没有更好的办法?这是我(笨拙)的代码:
try:
self.waitForElement("//a[contains(text(), '%s')]" % mime)
do stuff ....
except TimeoutException:
self.waitForElement("//li[contains(text(), 'That file already exists')]")
do other stuff ...
Run Code Online (Sandbox Code Playgroud)
它需要等待整整10秒才能查看该文件是否已存在于系统上的消息.
该函数waitForElement只执行了许多WebDriverWait调用:
def waitForElement(self, xPathLocator, untilElementAppears=True):
self.log.debug("Waiting for element located by:\n%s\nwhen untilElementAppears is set to %s" % (xPathLocator,untilElementAppears))
if untilElementAppears:
if xPathLocator.startswith("//title"):
WebDriverWait(self.driver, 10).until(lambda driver : self.driver.find_element_by_xpath(xPathLocator))
else:
WebDriverWait(self.driver, 10).until(lambda driver : self.driver.find_element_by_xpath(xPathLocator).is_displayed())
else:
WebDriverWait(self.driver, 10).until(lambda driver : len(self.driver.find_elements_by_xpath(xPathLocator))==0)
Run Code Online (Sandbox Code Playgroud)
有人建议以更有效的方式完成这项工作吗?
我有一个网络应用程序,我在Tomcat上运行生产.它使用MySQL连接器,但它没有与war捆绑在一起,而是包含在Tomcat的公共lib目录下,因此我可以通过JNDI访问数据源.
我想用Jetty(开发时)做一些类似的东西,更确切地说是Jetty + Maven.有没有办法让我在通过Maven运行Jetty时在类路径中包含mysql-connector jar(即没有将它捆绑在war文件中)?
另外我应该注意,我正在使用Maven进行构建过程,并将mysql-connector指定为"提供"范围.
我在JSP上的一个表单标记中有几个不同的提交按钮,它们都指向同一个servlet.我需要知道点击了哪个提交按钮.如何找出点击了哪个按钮?
我不知道我在这里做错了什么,我写了一个RPC客户端试图连接到一个不存在的服务器,我正在尝试处理抛出的异常,但无论我尝试什么我无法弄清楚我应该如何处理这个问题:
def _get_rpc():
try:
a = ServerProxy('http://dd:LNXFhcZnYshy5mKyOFfy@127.0.0.1:9001')
a = a.supervisor
return a
except:
return False
rpc = _get_rpc()
if not rpc:
print "No RPC"
Run Code Online (Sandbox Code Playgroud)
由于没有服务器运行,我希望输出为"无RPC",但我得到一个例外:
Traceback (most recent call last):
File "xmlrpctest.py", line 20, in <module>
if not rpc:
File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
verbose=self.__verbose
File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
self.send_content(h, request_body)
File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
connection.endheaders()
File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
self._send_output()
File "/usr/lib/python2.6/httplib.py", line …Run Code Online (Sandbox Code Playgroud) 我是Eclipse新手,我已经创建了一个小型Web应用程序,但是当我从Eclipse运行服务器(Tomcat)时,它会在自己的内部Web浏览器中启动该网站.
我想知道是否可以让它启动Firefox例如?
我需要下载Aptana吗?
我正在尝试使用Selenium IDE来测试Web应用程序.在一个页面上,有几个链接触发模态窗口.我想测试页面上的所有链接,以确保弹出所有原因模式.
每个链接都有一个"模态"类,所以我想我可以在IDE中更改目标值,css=a.modal但只找到第一个链接.
我找到了一些解决方案,但是他们使用Selenium RC和Java/Python,而这些解决方案无法直接转换为IDE.
我知道IDE不是那么强大,但是我正在为非程序员设置它,直到现在,它对他们来说非常简单.
我遇到了麻烦pexpect。我试图tralics从中读取乳胶方程的输出并发出 MathML 表示,如下所示:
1 ~/ % tralics --interactivemath
This is tralics 2.14.5, a LaTeX to XML translator, running on tlocal
Copyright INRIA/MIAOU/APICS/MARELLE 2002-2012, Jos\'e Grimm
Licensed under the CeCILL Free Software Licensing Agreement
Starting translation of file texput.tex.
No configuration file.
> $x+y=z$
<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mi>x</mi> <mo>+</mo><mi>y</mi><mo>=</mo><mi>z</mi></mrow></math></formula>
>
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用 pexpect 得到公式:
import pexpect
c = pexpect.spawn('tralics --interactivemath')
c.expect('>')
c.sendline('$x+y=z$')
s = c.read_nonblocking(size=2000)
print s
Run Code Online (Sandbox Code Playgroud)
输出具有公式,但开头是原始输入,结尾是一些控制字符:
"x+y=z$\r\n<formula type='inline'><math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>=</mo><mi>z</mi></mrow></math></formula>\r\n\r> \x1b[K"
Run Code Online (Sandbox Code Playgroud)
我可以清理输出字符串,但我必须缺少一些基本的东西。有没有更干净的方法来获得 MathML?
我在静默模式下运行msi安装程序并在特定文件中缓存日志.以下是我需要执行的命令.
C:\Program Files\ My Installer\Setup.exe /s /v "/qn /lv %TEMP%\log_silent.log"
我用了:
subprocess.Popen(['C:\Program Files\ My Installer\Setup.exe', '/s /v "/qn /lv %TEMP%\log_silent.log"'],stdout=subprocess.PIPE).communicate()[0]
Run Code Online (Sandbox Code Playgroud)
执行命令然而它无法识别操作并且在选择错误选项时给出错误.我已经交叉验证,发现命令只能这样工作.
python ×4
java ×2
selenium ×2
aptana ×1
browser ×1
eclipse ×1
forms ×1
ide ×1
input ×1
jetty ×1
jndi ×1
jsp ×1
linux ×1
mathml ×1
maven ×1
modal-dialog ×1
pexpect ×1
popen ×1
selenium-ide ×1
servlets ×1
shell ×1
subprocess ×1
sudo ×1
testing ×1
tomcat ×1
wait ×1
webdriver ×1
xml-rpc ×1
xmlrpclib ×1