可能重复:
以Django格式获取请求数据
我的访客模型的一部分:
class Guest(models.Model):
event = models.ForeignKey(Event, related_name='guests')
user = models.ForeignKey(User, unique=True, related_name='guests')
...
Run Code Online (Sandbox Code Playgroud)
表格以获得来宾的回复:
class RSVPForm(forms.Form):
attending_d= forms.ChoiceField(choices=VISIBLE_ATTENDING_CHOICES, initial='yes', widget=forms.RadioSelect)
attending_b = forms.ChoiceField(choices=VISIBLE_ATTENDING_CHOICES, initial='yes', widget=forms.RadioSelect)
number_of_guests = forms.IntegerField(initial=0)
comment = forms.CharField(max_length=255, required=False, widget=forms.Textarea)
....
def save(self):
guest = self.guest_class.objects.get(user=1)
guest.attending_status_d = self.cleaned_data['attending_d']
guest.attending_status_b = self.cleaned_data['attending_b']
guest.number_of_guests = self.cleaned_data['number_of_guests']
guest.comment = self.cleaned_data['comment']
guest.save()
return guest
Run Code Online (Sandbox Code Playgroud)
问题出在save方法中.如何将访客与当前登录的用户相关联?
guest = self.Guest.objects.get(user=1)
Run Code Online (Sandbox Code Playgroud)
而不是user=1我需要具有当前登录用户的id.
谢谢!
我正在尝试针对Chrome运行我的Selenium测试.当我在本地初始化驱动程序时:
@driver = Selenium::WebDriver.for( :chrome )
Run Code Online (Sandbox Code Playgroud)
一切正常(我已将Chrome二进制文件放在我的PATH上)但是当我尝试远程启动时:
@driver = Selenium::WebDriver.for(:remote, :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => :chrome)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Selenium :: WebDriver :: Error :: UnhandledError:chromedriver可执行文件的路径必须由webdriver.chrome.driver系统属性设置; 有关详细信息,请参阅 http://code.google.com/p/selenium/wiki/ChromeDriver.最新版本可以从http://code.google.com/p/chromium/downloads/list下载 (java.lang.IllegalStateException)
我在那里有点困惑 - 我究竟应该如何设置这个系统属性?我发现这个代码用Java编写:
DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setJavascriptEnabled(true);
caps.setCapability("chrome.binary", "/path/to/where/chrome/is/installed/chrome.exe");
System.setProperty("webdriver.chrome.driver","/path/to/where/you/ve/put/chromedriver.exe");
ChromeDriver driver = new ChromeDriver(caps);
Run Code Online (Sandbox Code Playgroud)
但我的测试是用Ruby编写的.RubyBindings没有谈论这个问题 http://code.google.com/p/selenium/wiki/RubyBindings
是否有已知的解决方案在Webdriver,Ruby绑定中执行Eval(Javascript执行)?
相当于Java中的以下示例.
WebElement element = driver.findElement(By.id( "foo" ));
String name = (String) ((JavascriptExecutor) driver).executeScript(
"return arguments[0].tagName" , element)
Run Code Online (Sandbox Code Playgroud) .delete_all_visible_cookiesSelenium 有一种方法.我很惊讶地发现.delete_all_cookies在Webdriver中是私有API的一部分,因此无法通过@driver实例访问.
对于IE来说这是一个问题,因为它不会在新的测试运行中以FF形式启动干净的浏览器.
在Ruby中,符号可以方便地转换为Proc,例如:
%{john terry fiona}.map(&:capitalize) # -> %{John Terry Fiona}
Run Code Online (Sandbox Code Playgroud)
有没有办法将方法传递给Proc,以缩短以下代码:
["john", "terry", "fiona"].each do |n|
assert n.valid_encoding?
end
Run Code Online (Sandbox Code Playgroud)
谢谢.
我是Ruby的初学者,可能这个问题太容易了,但是我已经花了一些时间在它上面找不到解决方案.我的Ruby脚本采用数字(ex 10)和名称(ex Vincent).我想要的是使阵列看起来像
Vincent0
Vincent1..
Vincent9
Run Code Online (Sandbox Code Playgroud)
我无法想办法让它成为现实.
新手红宝石问题.
我上课了
class ReportPage < Page
def badge_item(item_int)
case item_int
when 1..50 then @item= 1
when 50..100 then @item= 50
end
def check_completed_items_badge
badge_item(50)
puts @item
end
end
Run Code Online (Sandbox Code Playgroud)
果然,它没有.这就是我的问题 - 如何在类的另一个方法中使用@item变量?
非常感谢!
获取cookie的Webdriver Ruby绑定中有一个方法:
(Array<Hash>) all_cookies
Run Code Online (Sandbox Code Playgroud)
以下描述:
返回:
* (Array<Hash>) — list of cookies
Run Code Online (Sandbox Code Playgroud)
请问,请举例说明其用法.谢谢!